Самый простой способ - использовать Firebase Cloud Messaging. Тем более, что Google не поддерживает GCM, который ранее использовался для Android. Также облачные сообщения Firebase бесплатны и могут использоваться как для iOS, так и для Android. Для службы Apple APN также потребуется настройка и платная учетная запись разработчика.
Создайте проект Firebase, если вы этого еще не сделали, и включите облачный обмен сообщениями.
Чтобы настроить сервер Node.js таким образом, чтобы он мог отправлять уведомления pu sh на устройства android и IOS. Нажмите «Обзор проекта», «Настройки» и «Учетные записи служб» и следуйте инструкциям по созданию закрытого ключа для вашего проекта и следуйте инструкциям по настройке. Также npm установите "firebase-admin".
После настройки firebase обратитесь к этим документам, чтобы узнать, как отправлять сообщения. https://firebase.google.com/docs/cloud-messaging/send-message
Существует несколько способов отправки сообщений. Вы можете отправлять сообщения напрямую.
с этим кодом
// This registration token comes from the client FCM SDKs.
var registrationToken = 'YOUR_REGISTRATION_TOKEN';
var message = {
data: {
score: '850',
time: '2:45'
},
token: registrationToken
};
// Send a message to the device corresponding to the provided
// registration token.
admin.messaging().send(message)
.then((response) => {
// Response is a message ID string.
console.log('Successfully sent message:', response);
})
.catch((error) => {
console.log('Error sending message:', error);
});
Вы также можете создавать темы для устройств, на которые можно подписаться, если вы отправляете массовые уведомления. Больше примеров снова в документах. Теперь, если вам интересно, что такое маркер, это следующий шаг.
Токен исходит от уникального устройства, которое подключается к вашей платформе. Вы можете получить токен, установив Firebase Messaging sdk из
https://pub.dev/packages/firebase_messaging и следуя инструкциям, чтобы добавить необходимые зависимости в ваш pubse c .yaml и правильно настроить манифест Android и iOS файлы для изменений.
Этот пакет предоставит вам способы перехвата вашего общения и получения уведомлений, отправленных вами с вашего Node.JS сервера.
Вот пример захватить токен с вашего устройства на веб-интерфейс в флаттер.
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
bool _initialized = false;
Future<void> init() async {
if (!_initialized) {
// For iOS request permission first.
_firebaseMessaging.requestNotificationPermissions();
_firebaseMessaging.configure(onMessage: (Map<String, dynamic> `enter code here`message) {
print('onMessage: $message');
Platform.isAndroid
? showNotification(message['notification'])
: showNotification(message['aps']['alert']);
return;
}, onResume: (Map<String, dynamic> message) {
print('onResume: $message');
return;
}, onLaunch: (Map<String, dynamic> message) {
print('onLaunch: $message');
return;
});
// For testing purposes print the Firebase Messaging token
String token = await _firebaseMessaging.getToken();
print("FirebaseMessaging token: $token");
_initialized = true;
}
}
В этот момент вы, скорее всего, сохранили бы токен в своей базе данных MongoDB и связали бы токен с вашим пользователем и указанным c устройством. Конечно, вам также необходимо установить ядро firebase и Flutter и выполнить все необходимые настройки.
Вы по-прежнему можете поддерживать базу данных API NodeJS и базу данных MongoDB и использовать бесплатную службу облачных сообщений. pu sh ваши уведомления для вашего сервера на ваше устройство.