UIWebview open URL in mobile safari using javascript

UIWebview open URL in mobile safari using javascript

本文关键字:safari using javascript mobile in open URL UIWebview      更新时间:2023-09-26

所以我正在使用phaser构建一个HTML5游戏,我有一个按钮,可以在javascript中调用URL,如下所示:

window.open("http://google.com", "_blank"); 

这在新窗口中打开桌面时效果很好,我也可以通过 webview 在 android 设备上的默认浏览器中打开它。但是在 iOS 上使用 UI 在 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无处可寻。这些属性都没有可用于检测和调用移动野生动物园的 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时,它不起作用。

此外,webViewDidStartLoad/webViewDidFinishLoad调用 URL 时,这两个都会触发断点,但在 webView 对象中提供的任何属性中找不到 URL...

任何想法如何让委托函数与 javascript 调用 URL 很好地配合使用?或者有什么变通办法的想法?它只是在网络视图中加载链接...我只需要它在移动野生动物园中打开这些链接。

想通了!只需在 html 页面上的某个地方创建一个空标签,即可连接游戏内容,例如:

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

然后像这样使用Javascript"点击"它:

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

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