电容器 - 从 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
我们将应用程序从 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