电容器 - 从科尔多瓦迁移后,默认情况下在 Android 上禁用浮动通知

Posted

技术标签:

【中文标题】电容器 - 从科尔多瓦迁移后,默认情况下在 Android 上禁用浮动通知【英文标题】:Capacitor - floating notifications disabled by default on Android after migration from cordova 【发布时间】:2021-12-08 01:35:27 【问题描述】:

我们将应用从 Cordova 迁移到 Capacitor。

对于 Cordova 上的推送通知,我们使用了 cordova-plugin-firebasex 插件。

对于 Capacitor,将 Plugin 替换为官方的 Push Notifications 插件和 FCM 插件(我们需要 FCM)。

现在在 android 上安装应用程序时,应用程序的“浮动通知”设置默认禁用,而使用 cordova 插件默认启用

任何想法可能是什么原因或我们如何默认启用该设置?

普遍的共识是这个设置不受应用程序的影响,但为什么它适用于cordova-plugin?

【问题讨论】:

【参考方案1】:

发现差异:

作为here 如上所述,Android 需要至少订阅一个 Channel。 cordova-plugin 自动执行此操作,对于电容器,必须手动完成。

所以添加

        await PushNotifications.createChannel(
          id: '<id>',
          name: '<Name>',
          description: '<Description>',
          importance: 5,
          visibility: 1,
          lights: true,
          vibration: true,
        );

注册后适用于Android。

另外将以下内容作为xml文件放入res/values

<?xml version='1.0' encoding='utf-8'?>
<resources>
    <string name="default_notification_channel_id"><id></string>
    <string name="default_notification_channel_name"><name></string>
</resources>

那么这个必须在AndroidManifest.xml中链接:

    <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id"/>

    <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_name"
        android:value="@string/default_notification_channel_name"/>

对于&lt;id&gt;,它最容易使用cordova-plugin中使用的默认ID:

fcm_default_channel

【讨论】:

以上是关于电容器 - 从科尔多瓦迁移后,默认情况下在 Android 上禁用浮动通知的主要内容,如果未能解决你的问题,请参考以下文章

进入聊天屏幕时,如何在默认情况下在底部显示最近消息的位置显示对话?

迁移科尔多瓦项目时找不到插件

默认情况下在我的 android 应用中启用所有通知设置

从.NET Core 3.1(Docker)迁移后,.NET 6 应用程序日志为 JSON 格式 [重复]

docker aufs 到 devicemapper docker 容器和图像迁移

Vuex:在不编写 itvuex 的情况下在页面刷新时保持状态?