UIWebview使用javascript在移动safari中打开URL

时间:2015-01-09 02:38:17

标签: javascript ios html5 uiwebview phaser-framework

所以我正在使用移相器构建一个HTML5游戏,我有一个按钮在javascript中调用这样的URL:

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

这在新窗口中打开桌面效果很好,我也可以通过webview在Android设备的默认浏览器中打开它。但是在iOS上使用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 ...

我在网上找到的所有内容都说它只知道使用标准链接标记,例如<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一起使用?或者任何有关工作的想法?它只是在webview中加载链接...我只是需要它来在移动游猎中打开这些链接。

1 个答案:

答案 0 :(得分:1)

想出来!只需在你的html页面上的某个地方做一个空标记,其中包含以下内容:

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

然后使用Javascript“点击”它:

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

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