我想要什么
我有外部网络资源,我希望cordova webview能够轻松打开并能够浏览其内部导航。
描述
InAppBrowser docs说
InAppBrowser窗口的行为类似于标准Web浏览器,并且无法实现 访问Cordova API。因此,建议使用InAppBrowser 如果您需要加载第三方(不受信任的)内容,而不是 将其加载到Cordova主视图中
所以我有一个值得信赖的外部链接(让我们说http://www.google.com我想在主webview中加载并希望通过window.location.href或用户链接点击来控制它的进程。
我尝试了什么
使用最新的cordova生成hello world应用程序并插入
window.location.href = 'http://www.google.com/'
到它的onDeviceReady。它的配置已经有了(我试图将其改为具体的地址)
<access origin="*" />
我也试过了window.open和手动用户链接点击,但我所有的都是对话框,在外部浏览器中打开链接,而不是在同一个webview中呈现它。 我也尝试了InAppBrowser扩展,当我禁用导航栏但它有通信问题并且不能在手动链接舔和window.location.href更改时工作正常。
答案 0 :(得分: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:*" />
如果你遇到同样的问题,你还需要知道以下事项: