UIWebview使用JavaScript在移动Safari中打开URL
所以我正在使用phaser构build一个HTML5游戏,并且我有一个button,在JavaScript中调用一个URL,如下所示:
window.open("http://google.com", "_blank");
这在桌面上的新窗口打开效果很好,我也可以通过webview在Android设备的默认浏览器中打开它。 但是,在iOS中使用UIWebView在swift中使用下面的代码
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
无处可寻。 这些属性都没有我可以用来检测和调用移动Safari的URL …
我在网上find的所有东西都只是说只有像<a href="http://google.com">link text</a>
这样的标准链接标签才能使用。我也试过document.location.href = "http://google.com";
没有运气。 顺便说一句,我testing了<a href="http://google.com">link text</a>
,这个function的作品,它使Safari浏览器打开。 当通过Javascript调用URL时,它不起作用。
此外, webViewDidStartLoad/webViewDidFinishLoad
在调用URL时都会触发断点,但webView对象中提供的任何属性中都不存在任何URL。
任何想法,我可以得到的委托函数与JavaScript调用URL的良好发挥? 或任何想法解决? 它只是加载webview中的链接…我只是需要它打开移动Safari浏览器中的链接。
弄清楚了! 只要在你的html页面的某个地方做一个空标签就可以了,例如:
<a id="theLink" target="_blank" href="http://google.com"></a>
然后用这样的Javascript“点击”它:
document.getElementById('theLink').click();
与上面的swift代码一起使用正在为我工作,游戏打开safari中的链接。