我正在使用phonegap build并将我的版本设置为3.0.0。我在我的页面上有链接,我想在iOS上的safari中打开。在我的配置文件中,我将访问orgin设置为“*”,因此它允许所有URL(这对我的应用程序的其他部分是必需的)。我在配置文件中也有inappbrowser插件,因为我被告知这可能是必要的。
<access origin="*" />
<gap:plugin name="org.apache.cordova.core.inappbrowser" />
我目前正在使用以下代码设置我的“a”标签:
$('#myATagID').on('click', function () {
window.open(encodeURI('http://apache.org'), '_system', 'location=no');
});
我已经尝试了很多不同的尝试,让我的iPhone上的这个网址在safari中打开,但是没有一个成功使用phonegap build 3.0.0这个代码确实适用于Android。
答案 0 :(得分:1)
请参阅here关于此主题的SO答案。完整的演练你应该找到相关的。
答案 1 :(得分:1)
您不应该只需要在系统浏览器中打开插件。我使用以下JavaScript函数执行相同的任务。
JavaScript的:
// window.open wasn't opening a link in the system browser on iOS, so we have to use this function (requires phonegap.js)
function redirectToSystemBrowser(url) {
// Wait for Cordova to load
document.addEventListener('deviceready', onDeviceReady, false);
// Cordova is ready
function onDeviceReady() {
// open URL in default web browser
var ref = window.open(encodeURI(url), '_system', 'location=yes');
}
}
然后,我只是用HTML调用该函数。
HTML:
<head>
<!-- required for the redirectToSystemBrowser() function -->
<script src="phonegap.js"></script>
</head>
<body>
<ul>
<li onclick="redirectToSystemBrowser('http://www.domain.ext');">link to something</li>
</ul>
</body>
另外,我没有指定任何<access>
设置(我只是将它们全部注释掉了)。
答案 2 :(得分:0)
我认为您需要删除encodeURI()
,因为这可能会编码//并使URI格式错误。
答案 3 :(得分:0)
要在Safari中打开外部链接,您需要In App Browser插件
https://github.com/apache/cordova-plugin-inappbrowser/blob/master/doc/index.md
你打电话给window.open(encodeURI(&#34; https://google.com&#34;),&#34; _system&#34;);
&#34; _blank&#34;将它加载到应用程序内的模态浏览器中。
答案 4 :(得分:0)
尝试:
window.open('http://google.com', '_system', 'location=no');
适合我。