我有协议(如http),其方案由在Mac OS XIe中注册的第3方应用程序,x-someapp:// someaction或类似的东西管理。
如何使用Google Chrome浏览器打开此URL?默认情况下,Chrome开始在Google引擎中搜索,而不是启动App并将URL处理传递给它。
Safari启动一些已注册的应用程序。这是对的。
Firefox和Opera问该怎么办…,我也可以启动App。
但是Chrome …没问。
我什至尝试编写一些带有JavaScript的HTML页面来发送XHttpRequest:
function _httpExecuteCallback() { if (httpRequestCallbackFunction != null) { if (httpRequest.readyState == 4) { if (httpRequest.status == 200) { httpRequestCallbackFunction(); httpRequestCallbackFunction = null; } } } } function _httpGet(url, callbackFunction) { httpRequest = false; httpRequestCallbackFunction = callbackFunction; httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = _httpExecuteCallback; httpRequest.open('GET', url, true); httpRequest.send(null); } _httpGet('x-someapp://test',function(){})
也没有结果…
我找到了适用于Chrome的解决方案。我使用IFRAME方式。
示例(使用JQuery):
$("body").append('<span id="__protoProxy"></span>'); function queryWord(aWord) { var protoProxy = document.getElementById('__protoProxy'); if (protoProxy) { var word = aWord.replace('"','\"'); protoProxy.innerHTML = '<div style="display:none;"><iframe src="x-myproto://query?' + word + '"></iframe></div>'; } } queryWord('hello');