因此,我正在使用Phaser构建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>
并且此功能有效,它使它在野生动物园中打开。通过Javascript调用URL时,它只是不起作用。
同样,webViewDidStartLoad/webViewDidFinishLoad
两个调用URL时都会触发断点,但在webView对象提供的任何属性中都找不到URL。
有什么想法可以使委托函数与javascript调用URL一起很好地发挥作用吗?或有任何解决方法的想法?它只是将链接加载到webview中...我只需要它即可在移动Safari中打开这些链接。
弄清楚了!只需在html页面上的某个位置添加一个空白标签,即可添加游戏内容,例如:
<a id="theLink" target="_blank" href="http://google.com"></a>
然后使用Java脚本“单击”它,如下所示:
document.getElementById('theLink').click();
与上面的swift代码一起使用的代码对我有用,并且该游戏在safari中打开了链接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句