使用 javascript 在移动版 Safari 中打开 UIWebview URL

UIWebview open URL in mobile safari using javascript

所以我正在使用移相器构建一个 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。这些属性都没有 URL 我可以用来检测和调用移动 safari...

我在网上找到的所有内容都说它只能与标准 link 标签一起使用,例如 <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 ......

关于如何让委托函数与调用 URL 的 javascript 配合使用有什么想法吗?或任何解决方法的想法?它只是在 webview 中加载 link...我只需要它在移动 safari 中打开那些 links。

想通了!只需在 html 页面的某处创建一个空标签,其中包含游戏内容,例如:

<a id="theLink" target="_blank" href="http://google.com"></a>

然后 "click" 它使用 Javascript 像这样:

document.getElementById('theLink').click();

与上面的 swift 代码结合使用对我有用,游戏会在 safari 中打开 link。