Cordova Android 不允许向 fb-messenger 打开列入白名单的意图
Posted
技术标签:
【中文标题】Cordova Android 不允许向 fb-messenger 打开列入白名单的意图【英文标题】:Cordova Android not allowing to open whitelisted intent to fb-messenger 【发布时间】:2019-10-11 23:37:24 【问题描述】:我有一个适用于 android 的 Ionic Cordova 应用程序,它有一个 facebook messenger 按钮:
<a href="https://m.me/my-fb-page" target="_blank"><img src="assets/images/messenger.svg" /></a>
点击后,屏幕上不会出现任何内容。我一直通过 logcat 收到此错误:
CordovaWebViewImpl: Blocked (possibly sub-frame) navigation to non-allowed URL: intent://user/xxxxxxxxxxxxx/?intent_trigger=mme&nav=discover#Intent;scheme=fb-messenger;package=com.facebook.orca;end
我已经安装了 cordova-plugin-whitelist。
config.xml 的内容:
...
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-navigation href="*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-intent href="fb-messenger:*" />
<platform name="android">
<allow-intent href="market:*" />
<allow-intent href="fb-messenger:*" />
...
我已经尝试了一些允许意图、访问和允许导航的选项。
此问题与 facebook messenger 无关,我也无法打开其他外部(支付)应用程序
【问题讨论】:
链接https://m.me/my-fb-page
(以及由此产生的错误消息)是否取决于为用户安装的应用程序?还有哪些其他可以测试的应用程序?
这是 Facebook Messenger 的链接,如果已安装,则应在 FB Messenger 应用程序中打开;如果未安装,则应在浏览器中打开。我还有一个没有打开的应用程序,它应该通过我们正在使用的支付提供商显示的框架打开:play.google.com/store/apps/… 我无法专门测试这个,因为它是通过支付提供商的链接打开的。由于 对任何一个都不起作用,我认为问题出在插件配置上。
试图重现这一点,因此创建了一个只有<a href="https://m.me/my-fb-page" target="_blank">Facebook Messenger</a>
的应用程序并安装了Facebook Messenger。 Android 询问我是否要使用 Chrome 或 Messenger 打开链接,如果我选择 Messenger,它会按预期打开应用程序。我错过了什么?你能在 GitHub 上放一个最小的复制应用吗?
【参考方案1】:
使用<allow-navigation href="*" />
,您告诉您的应用导航到每个网址,这会阻止任何allow-intent
工作,因为它会尝试导航到它而不是启动意图。
【讨论】:
以上是关于Cordova Android 不允许向 fb-messenger 打开列入白名单的意图的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Android 28 中创建 mfp cordova 项目