如何设置在safari Phonegap Build 3.0.0中打开的链接

时间:2013-10-17 20:40:51

标签: cordova phonegap-build

我正在使用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。

5 个答案:

答案 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');

适合我。