电容器 - 从 cordova 迁移后 Android 默认情况下禁用浮动通知

Capacitor - floating notifications disabled by default on Android after migration from cordova

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

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

对于 Capacitor,将插件替换为官方 Push Notifications plugin and the FCM 插件(我们需要 FCM)。

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

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

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

发现差异:

作为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"/>

对于 <id> 它最容易使用 cordova-plugin 中使用的默认 id:

fcm_default_channel