在Mac和iOS平台上,it is possible to do two-way interchange with the native runtime through custom URI schemes / a NSURLProtocol
。例如..要从本机Objective-C方法请求NSImage
,您可以使用Webkit /您的{{1}注册自定义处理程序(一个简单的字符串,这里我用“mycustomprotocol
”) },并从JS调用它...
WebView NSView
我希望能够使用jQuery来发出请求,因为在这一点上,它比90年代风格的JS更熟悉..但就我在网络上找到的var theURL = 'mycustomprotocol:///' + (textField.value);
img.innerHTML = '<img src="'+theURL+'" id="string"/>';
和$.get
仅$.ajax
。
会像
http(s)
覆盖jquery的URL处理?当我谈到JavaScript时,我很愚蠢,我确信这很容易完成。我相信这就是整个jQuery移动框架的实现方式(通过私有URI)。所以,为什么google上没有任何内容关于它,对吧?我能从姐姐朋友那里得到一些帮助吗?
答案 0 :(得分:2)
基本的ajax和get方法使用浏览器的常规http请求。出于安全原因,ajax类型调用永远不会使用自定义协议。如果您尝试开发一个不在服务器上并使用.ajax的网站,您会发现它什么都不做。你必须从头开始并完全创建一个自定义请求处理程序,而不仅仅是改变jQuery中的内容。
答案 1 :(得分:2)
以下是我为callto:
协议所做的工作,该协议适用于Firefox 24和IE 10(我没有测试任何其他浏览器):
首先 - 您的协议必须已经注册,否则您的计算机将无法识别它。
其次,使用您的协议作为href在标记中创建隐藏链接。
当我点击按钮(#calltobutton
)时,它会设置隐藏链接(#clicker
)的值,然后再单击它,导致浏览器执行操作。
然后这样做:
$('#calltobutton').click(function () {
initCallTo(1234567890);
});
function initCallTo(callto) {
$('#clicker').attr('href', "callto:" + callto);
$('#clicker')[0].click();
}
现在,点击callto链接的方法很奇怪。您可以在this here thread中了解更多相关信息。
答案 2 :(得分:1)
这有点晚了,但您可以使用https://github.com/ded/reqwest执行此操作:
reqwest('mycustomprotocol://myaction', function(result) {
// ...
});
答案 3 :(得分:1)
我能让这个工作的唯一方法是使用JS中的DOM进行浏览器窗口重定向。从JQuery调用甚至本页提到的reqwestJS库对我来说都不适合使用移动版Safari和一个监听自定义URI方案的应用程序。