在 iOS 上,allow-navigation 不优先于 allow-intent
Posted
技术标签:
【中文标题】在 iOS 上,allow-navigation 不优先于 allow-intent【英文标题】:allow-navigation isn't taking precedence over allow-intent on iOS 【发布时间】:2018-06-17 21:30:15 【问题描述】:我使用PWAbuilder 为我的 PWA 应用生成了 ios 和 android Pollyfill。它在 Android 上运行良好,但我在 iOS 上遇到了问题。
我想在外部浏览器中打开外部链接,所以我添加了这个allow-intent
:
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
这很好,如果我点击任何外部链接 (not-under-my-domain.com),它会在外部浏览器中打开。
为了在应用中打开 my-domain.com,我添加了
<allow-navigation hap-rule="yes" href="*://my-domain.com/*" />
根据文档,allow-navigation
应该优先于 allow-intent
,但它似乎不起作用。
然后,如果我点击我域中的任何链接,例如 /other-page,它会在外部浏览器中打开 - 这是意料之外的,它应该在应用程序中打开。 p>
我想让allow-navigation
中未定义的任何链接在外部浏览器以及应用内的所有其他链接(在 my-domain.com 下)中打开。
有什么想法吗?
【问题讨论】:
你的 cordova-ios 版本是什么?我一直在尝试 4.5.4 并且似乎工作正常。我创建了一个加载谷歌并允许谷歌导航并进行搜索的应用程序,但结果在 safari 中打开。还尝试在允许<allow-navigation hap-rule="yes" href="*://www.example.com/*" />
后加载不同的www.example.com
url,并且它们都在应用程序内打开。
可能需要添加: 不允许插入星号,你需要在星号里面添加 -> * 和 I said you need to add inside the asterisk -> *
,但网络不允许设置星号 <allow-navigation href="*" /> <allow-intent href="*" />
【参考方案1】:
所以看来问题出在我过时的科尔多瓦版本上。我按照@jcesarmobile 对 cmets 的建议升级了cordova 版本,现在可以使用了。
npm install cordova -g
cordova plugin save
cordova platform rm ios
cordova platform add ios
【讨论】:
以上是关于在 iOS 上,allow-navigation 不优先于 allow-intent的主要内容,如果未能解决你的问题,请参考以下文章
错误:未找到“www/index.html”处的起始页并且错误内部导航被拒绝 - <allow-navigation> 未设置为 url='about:blank'
iOS 8:UITableView 在 heightForRowAtIndexPath 上崩溃(在 iOS7 上运行良好)