【问题标题】:Apache Cordova allow-navigation overridden by allow-intentApache Cordova 允许导航被允许意图覆盖
【发布时间】:2016-09-05 12:03:56
【问题描述】:

我们希望应用程序上的每个链接都能够在系统的外部浏览器中打开,但选择的主机名除外。

我们尝试放置 <allow-navigation href="*.hostname.com/*"/> ,但是当您使用 <allow-intent href="http://*/*" /> and <allow-intent href="https://*/*" 作为应用程序中所有其他链接的意图标签时,它会被覆盖。

预期的结果是我们的主机名在应用程序中打开,但它们在外部浏览器上打开。

我已尝试查看网上所有最新的文档和帮助,但找不到我的解决方案的答案。希望大家知道。

编辑:忘了提到我们使用 inappbrowser 插件运行最新的 cordova CLI 和最新的白名单插件。

此致,

丹尼尔

【问题讨论】:

  • 您在哪里看到这个问题?在 iOS 上?安卓?两个都?在 cordova-ios 4.1.1 上,这应该是固定的
  • @Thrinaria 建议您查看此链接 - stackoverflow.com/questions/37127660/… 处理过类似问题
  • @jcesarmobile 6.1 android 和 ios。
  • @Gandhi 是的,我看过这个,也试过这个,但它仍然被覆盖。
  • 我错了,cordova-ios 4.1.1 上没有修复,4.2.0 上已经修复了。在stackoverflow.com/questions/37866341/… 上查看我的回答

标签: android ios cordova whitelist apache-cordova


【解决方案1】:

尝试将您的 <allow-*> 标签更改为:

<allow-intent href="*.hostname.com/*"
<allow-navigation href="https://*/*"
<allow-navigation href="http://*/*"
<allow-access href="https://*/*"
<allow-access href="http://*/*"

&lt;allow-navigation&gt; 标签用于控制 Cordova webview 本身可以导航到的 url。

查看此article 以更好地了解 Cordova 的白名单。

【讨论】:

  • allow-access 应该只是即
【解决方案2】:

我认为您需要手动完成。你可以使用inApp Browser插件来实现。

  1. 检查链接是内部/外部(通过检查超链接是否包含您的主机名)
  2. 如果是外部调用系统浏览器打开链接 cordova.InAppBrowser.open('http://external-domain.name', '_system', 'location=yes');
  3. 如果是内部链接打开InAppBrowser里面的链接 cordova.InAppBrowser.open('http://yourdomain.name', '_blank', 'location=yes');

如果不需要,可以忽略第 3 步。

完整代码:

$(document).on("click","a",function(e){        
      var hrefs = $(this).attr("href");        

      if(hrefs.indexOf("yourdomain") > -1) {
          //Open link inside inAppBrowser   
          cordova.InAppBrowser.open(hrefs, '_blank', 'location=yes');
          e.preventDefault();//To prevent default click
       } 
      else {
           //Open link inside system browser
           cordova.InAppBrowser.open(hrefs, '_system', 'location=yes');
           e.preventDefault();//To prevent default click
       }
})

【讨论】:

    猜你喜欢
    • 2016-05-22
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多