簡體   English   中英

如何對私有/自定義URL協議發出jQuery GET / AJAX請求?

[英]How to make a jQuery GET/AJAX request to a private/custom URL protocol?

在Mac和iOS平台上, 可以通過自定義URI方案/ NSURLProtocol與本機運行時進行雙向交換 例如..要從本機Objective-C方法請求NSImage ,您可以使用Webkit / WebView NSView注冊自定義處理程序(一個簡單的字符串,這里我使用“ mycustomprotocol ”),並從JS調用它...

var theURL = 'mycustomprotocol:///' + (textField.value);
img.innerHTML = '<img src="'+theURL+'" id="string"/>';

我希望能夠使用jQuery來做出請求,因為在這一點上,它比90年代風格的JS更熟悉..但據我在網上找到, $.get$.ajax只做http(s)

會是這樣的

javascript:document.location = 'mycustomprotocol://'

覆蓋jquery的URL處理? 當我談到JavaScript時,我很愚蠢,我確信這很容易完成。我相信這就是整個jQuery移動框架的實現方式(通過私有URI)。所以,為什么google上沒有任何內容關於它,對吧? 我能從姐姐朋友那里得到一些幫助嗎?

基本的ajax和get方法使用瀏覽器的常規http請求。 出於安全原因,ajax類型調用永遠不會使用自定義協議。 如果您嘗試開發一個不在服務器上並使用.ajax的網站,您會發現它什么都不做。 你必須從頭開始並完全自定義請求處理程序,而不僅僅是改變jQuery中的內容。

這是我為callto: protocol做的,它在Firefox 24和IE 10中運行(我沒有測試過任何其他瀏覽器):

首先 - 您的協議必須已經注冊,否則您的計算機將無法識別它。 其次,使用您的協議作為href在標記中創建隱藏鏈接。 當我單擊一個按鈕( #calltobutton )時,它會設置隱藏鏈接( #clicker )的值,然后再單擊它,導致瀏覽器執行操作。

然后這樣做:

$('#calltobutton').click(function () {
    initCallTo(1234567890);
});


function initCallTo(callto) {
    $('#clicker').attr('href', "callto:" + callto);
    $('#clicker')[0].click();
}

現在,點擊callto鏈接的方法很奇怪。 你可以在這里找到更多相關信息。

這有點晚了,但您可以使用https://github.com/ded/reqwest執行此操作:

reqwest('mycustomprotocol://myaction', function(result) {
  // ...
});

只有我可以使用它才能使用JS中的DOM進行瀏覽器窗口重定向。 從JQuery調用甚至本頁提到的reqwestJS庫對我來說都不適合使用移動safari和一個監聽自定義URI方案的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM