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/… 我无法专门测试这个,因为它是通过支付提供商的链接打开的。由于 对任何一个都不起作用,我认为问题出在插件配置上。 试图重现这一点,因此创建了一个只有&lt;a href="https://m.me/my-fb-page" target="_blank"&gt;Facebook Messenger&lt;/a&gt; 的应用程序并安装了Facebook Messenger。 Android 询问我是否要使用 Chrome 或 Messenger 打开链接,如果我选择 Messenger,它会按预期打开应用程序。我错过了什么?你能在 GitHub 上放一个最小的复制应用吗? 【参考方案1】:

使用&lt;allow-navigation href="*" /&gt;,您告诉您的应用导航到每个网址,这会阻止任何allow-intent 工作,因为它会尝试导航到它而不是启动意图。

【讨论】:

以上是关于Cordova Android 不允许向 fb-messenger 打开列入白名单的意图的主要内容,如果未能解决你的问题,请参考以下文章

向 Android Cordova 插件添加依赖项

无法在 Android 28 中创建 mfp cordova 项目

Ajax Call 无法在 android 上运行,但在 ios Cordova 上运行良好

Cordova Android - 相机没有所有选项

Cordova 推送通知操作

Cordova IOS 13.6.1 视频不模糊