#android #firebase #cordova #capacitor
#Android #firebase #cordova #конденсатор
Вопрос:
Мы перенесли наше приложение с Cordova на Capacitor.
Для Push-уведомлений на Cordova мы использовали плагин cordova-plugin-firebasex.
Для Capacitor заменил плагин официальным плагином Push-уведомлений и плагином FCM (нам нужен FCM).
При установке приложения now на Android настройка «Плавающие уведомления» для приложения по умолчанию отключена, в то время как с плагином cordova она включена по умолчанию.
Есть идеи, что может быть причиной или как мы можем включить настройку по умолчанию?
По общему мнению, приложение не может повлиять на этот параметр, но почему тогда он работает для cordova-plugin?
Ответ №1:
Нашел разницу:
Как описано здесь, Android должен быть подписан хотя бы на один канал. 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:
fcm_default_channel