4

我正在使用 phonegap 构建并将我的版本设置为 3.0.0。我的页面上有我想在 iOS 上的 safari 中打开的链接。在我的配置文件中,我将访问源设置为“*”,因此它允许所有 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');
        });

我已经尝试了许多不同的尝试来让这个 url 在我的 iPhone 上的 safari 中打开,但是没有一个成功的 phonegap build 3.0.0 虽然这个代码确实适用于 android。

4

5 回答 5

1

请参阅我关于此主题的 SO 答案,位于此处。您应该找到相关的完整演练。

于 2013-10-17T21:02:22.630 回答
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>设置(我只是将它们全部注释掉)。

于 2013-11-12T19:45:12.133 回答
0

我认为您需要删除encodeURI(),因为这可能会编码 // 并使 URI 格式错误。

于 2013-10-17T20:45:20.697 回答
0

要在 Safari 中打开外部链接,您需要 In App Browser 插件

https://github.com/apache/cordova-plugin-inappbrowser/blob/master/doc/index.md

这就是你所说的 window.open(encodeURI(" https://google.com "), "_system");

“_blank”将在应用程序的模态浏览器中加载它。

于 2014-05-01T05:11:50.793 回答
0

尝试:

window.open('http://google.com', '_system', 'location=no');

对我来说效果很好。

于 2014-06-30T22:30:23.060 回答