所以我正在使用移相器构建一个HTML5游戏,我有一个按钮在javascript中调用这样的URL:
window.open("http://google.com", "_blank");
这在新窗口中打开桌面效果很好,我也可以通过webview在Android设备的默认浏览器中打开它。但是在iOS上使用UIWebView快速使用以下代码
func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == UIWebViewNavigationType.LinkClicked {
UIApplication.sharedApplication().openURL(request.URL)
return false
}
return true
}
它触发了所以是的我有委托集,我甚至在这里有一个断点,所以我可以查看属性,request.URL
无处可寻。这些属性都没有我可用于检测和调用移动游侠的URL ...
我在网上找到的所有内容都说它只知道使用标准链接标记,例如<a href="http://google.com">link text</a>
我也试过document.location.href = "http://google.com";
而没有运气。顺便说一下,我用<a href="http://google.com">link text</a>
进行了测试,这个功能正常,它可以在safari中打开。当通过Javascript调用URL时,它不起作用。
此外,webViewDidStartLoad/webViewDidFinishLoad
在调用URL时都会触发断点,但在webView对象中提供的任何属性中都找不到任何URL ...
任何想法如何让我的代理函数与javascript调用URL一起使用?或者任何有关工作的想法?它只是在webview中加载链接...我只是需要它来在移动游猎中打开这些链接。
答案 0 :(得分:1)
想出来!只需在你的html页面上的某个地方做一个空标记,其中包含以下内容:
<a id="theLink" target="_blank" href="http://google.com"></a>
然后使用Javascript“点击”它:
document.getElementById('theLink').click();
与上面的swift代码结合使用对我有用,游戏会在safari中打开链接。