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中的链接。