Cordova/Phonegap在Cordova主视图中加载外部网站

use*_*683 6 javascript android webview ios cordova

我想要的是

我有外部网络资源,我希望cordova webview简单开放,并能够浏览其内部导航.

描述

InAppBrowser文档说

InAppBrowser窗口的行为类似于标准Web浏览器,无法访问Cordova API.因此,如果您需要加载第三方(不受信任的)内容,而不是将其 加载到主Cordova Webview中,建议使用InAppBrowser

所以我有一个值得信赖的外部链接(让我们说http://www.google.com我想在主webview中加载,并希望通过window.location.href或用户链接点击来控制其过程.

我尝试了什么

生成最新的cordova和插入的hello world应用程序

window.location.href = 'http://www.google.com/'
Run Code Online (Sandbox Code Playgroud)

到它的onDeviceReady.它的配置已经有(并且我试图将其更改为具体的地址)

<access origin="*" />
Run Code Online (Sandbox Code Playgroud)

我也试过window.open和手动用户链接点击,但我所有的都是对话框,在外部浏览器中打开链接,而不是在同一webview中呈现它.我也试过InAppBrowser扩展,当我禁用导航栏但它有通信问题并且无法在手动链接舔和window.location.href更改时工作正常.

use*_*683 10

在ios和android上使用以下规则解决了这个问题:

<access origin="*" />
<allow-navigation href="*" />
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="tel:*" />
<allow-navigation href="sms:*" />
<allow-navigation href="mailto:*" />
<allow-navigation href="geo:*" />
Run Code Online (Sandbox Code Playgroud)

如果你遇到同样的问题,你还需要知道以下内容:

  • 谢谢!对我来说特别重要的是第二个要点(允许意图覆盖允许导航)。删除相应的允许意图条目(例如,对于 http、https)。如果你想挑选那个,例如。facebook 链接在外部打开只需添加: &lt;allow-intent href="*://*.facebook.com/*" /&gt; (2认同)