Я перенес свой проект Кордовы на конденсатор 6.0.0 (без фреймворка). Мое приложение использует jQuery Mobile, а код поддерживается в Android Studio. Мне удалось заставить работать все плагины, кроме cordova-plugin-fcm, который несовместим с конденсатором. Вместо этого я хочу использовать @capacitor-firebase/messaging, но не могу найти никакой документации/демо о том, как включить его в свой проект на Javascript.
Единственная документация, которую я нашел, касается конденсатора с каким-то типом каркаса.
Вам просто нужно импортировать его, как описано в документации:
import { FirebaseMessaging } from '@capacitor-firebase/messaging';
Вот пример использования плагина Capacitor без каких-либо фреймворков.
Мне удалось это решить.
Убедитесь, что установлен плагин @capacitor-firebase/messaging.
Включите этот код в файл конденсатора.config.json внутри «плагинов».
"FirebaseMessaging": {
"presentationOptions": [
"badge",
"sound",
"alert"
]
}
Включите этот код в свой файл JavaScript.
const FirebaseMessaging = Capacitor.Plugins.FirebaseMessaging;
//Check permissions set by the user
FirebaseMessaging.checkPermissions().then(
function(value)
{ //If checkPermissions value is prompt, then this is the first time and we need to requestPermission
if (value.receive == "prompt")
{ //Request permission from user
FirebaseMessaging.requestPermissions().then(
function(value)
{ //If permission is granted then get the device token and set the listener
if (value.receive == "granted")
{
FirebaseMessaging.getToken().then(
function(value)
{
console.info(JSON.stringify(value));
FirebaseMessaging.addListener("messageReceived", (message) => console.info(message));
},
function(error)
{
console.info(JSON.stringify(error));
}
);
}
},
function(error)
{
console.info(JSON.stringify(error));
}
);
}
else if (value.receive == "granted") //If checkPermissions value is granted, then user already made a selection and we need to get the token and set the listener
{
//Get the token and add listener
FirebaseMessaging.getToken().then(
function(value)
{
console.info(JSON.stringify(value));
FirebaseMessaging.addListener("messageReceived", (message) => console.info(message));
},
function(error)
{
console.info(JSON.stringify(error));
}
);
}
},
function(error)
{
console.info(JSON.stringify(error));
}
);
Чтобы протестировать уведомление приложения, сначала вам нужно получить токен вашего эмулятора или физического устройства. Для этого запустите приложение, в консоли вы увидите токен. Затем убедитесь, что приложение работает в фоновом режиме (т. е. не отображается на экране). Затем войдите в консоль Firebase, выберите «Отправить сообщение на тестовое устройство», введите токен и отправьте сообщение.
Это то, что я пробовал раньше, но получил ошибку в операторе импорта: «Сообщение: Uncaught SyntaxError: невозможно использовать оператор импорта вне модуля»