2013-10-17 120 views
4

我使用phonegap build并将我的版本设置为3.0.0。我在我的页面上链接了我想在iOS上的safari中打开的链接。在我的配置文件中,我将我的访问权限设置为“*”,因此它允许所有网址(这对我的应用的其他部分是必需的)。我也有我的配置文件中的inappbrowser插件,因为我被告知这可能是必要的。如何设置在safari中打开的链接Phonegap Build 3.0.0

<access origin="*" /> 
<gap:plugin name="org.apache.cordova.core.inappbrowser" /> 

我目前使用下面的代码来设置我的“一个”标签:

$('#myATagID').on('click', function() { 
      window.open(encodeURI('http://apache.org'), '_system', 'location=no'); 
     }); 

我在得到这个网址在Safari中我的iPhone上打开尝试了许多不同的尝试,但没有已成功与phonegap生成3.0.0此代码在android上工作。

回答

1

看到我的回答在这个问题上找到here。完整的演练你应该找到相关的。

+4

不再在Phonegap 3中工作。文档建议window.open与InApp浏览器完全绑定,并且永远不会提及跳出webview并进入新应用程序(Safari)。 –

0

我想你需要删除encodeURI(),因为这可能会编码//并使URI格式不正确。

+0

encodeURI不会编码//。 [见这里](http://www.w3schools.com/jsref/jsref_encodeuri.asp)。 – Keith

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>设置(我只是评论大家都出去了)。

+0

哦,Dom的答案是一个更加完整和翔实的答案(我加上它,因此)。呵呵呵... – doubleJ

0

尝试:

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

很适合我。

相关问题