我需要做的就是从App Link打开iPad浏览器(Safari,Chrome等)的外部网页链接。
PhoneGap 3.1表示可以通过一个名为InAppBrowser的插件来完成。好的,我安装了它,并在config.xml中添加了以下几行
<plugin name="InAppBrowser" value="CDVInAppBrowser" />
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<access origin="*"/>
然后我在我的页面中添加了一个链接,需要打开网页: -
<a class="linkexternal" href="#">asdf</a>
使用以下JS
<script type="text/javascript">
$(document).on('click', ".linkexternal", function (e) {
e.preventDefault();
//window.open('http://apache.org', '_blank', 'location=no');
window.open('http://apache.org', '_system', 'location=yes');
});
</script>
它确实打开了页面,但只是在没有控件的情况下打开整个屏幕。在旧版本的PhoneGap中,它最后显示“Done”,所以当我按下Done按钮时,它会让我回到应用程序。但在这里,它显示整个页面为全屏,回到应用程序的唯一方法是关闭应用程序。
我只需要它向我显示完成按钮,或者只是在外部浏览器中打开链接。
我尝试打开这三个不同的链接作为测试; '_system','_ blank'和'_self'
<a href="#" onclick="var ref = window.open('http://google.com', '_system');">Google (System Browser)</a><br /><br />
<a href="#" onclick="var ref = window.open('http://google.com', '_blank');">Google (InAppBrowser)</a><br /><br />
<a href="#" onclick="var ref = window.open('http://google.com', '_self');">Google (Webview)</a>
当我使用'_system','_ blank'和'_self'测试这三个链接时,只有'_self'一个作为应用程序的全屏打开,其余的给我以下错误: -
_system
链接出现此错误: -
2013-11-12 11:44:58.878 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)
_blank
链接出现此错误: -
2013-11-12 11:46:13.997 XYZ[2063:60b] CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.997 XYZ[2063:60b] Failed to load webpage with error: CDVWebViewDelegate: Navigation started when state=1
2013-11-12 11:46:13.999 XYZ[2063:60b] Resetting plugins due to page load.
2013-11-12 11:46:14.009 XYZ[2063:60b] Failed to load webpage with error: The operation couldn’t be completed. (NSURLErrorDomain error -999.)
答案 0 :(得分:-1)
请尝试;
var urlToOpen = 'http://www.google.com';
navigator.app.loadUrl(urlToOpen, { openExternal: true });
答案 1 :(得分:-1)
我认为问题是href =&#34;#&#34;。有了这个标签,onClick没有触发,我认为NSURLErrorDomain错误-999意味着浏览器无法解决&#34;#&#34;