使用 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。
所以我正在使用移相器构建一个 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.
此外,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。