所以我正在使用 Phaser 构建一个 HTML5 游戏,并且有一个按钮可以调用 javascript 中的 URL,如下所示:
window.open("http://google.com", "_blank");
这在桌面上在新窗口中打开时效果很好,我也可以通过 webview 在 Android 设备上的默认浏览器中打开它。但在 iOS 上,在 swift 中使用 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
无处可寻。这些属性都没有可用于检测和调用 mobile safari 的 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 时它不起作用。
Also, webViewDidStartLoad/webViewDidFinishLoad
当调用 URL 但在 webView 对象提供的任何属性中都找不到 URL 时,两者都会触发断点...
有什么想法可以让委托函数与调用 URL 的 javascript 配合良好吗?或者有什么解决办法吗?它只是在 webview 中加载链接...我只需要它在移动 safari 中打开这些链接。