Я новичок, чтобы трепетать и пытаюсь реализовать уведомление pu sh. Я использовал ОДИН СИГНАЛ для извещения pu sh
Здесь я инициализировал один сигнал и получил идентификатор игрока, который я отправляю на сервер.
void oneSignalInit() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
OneSignal.shared.init('one signal id');
OneSignal.shared.setInFocusDisplayType(OSNotificationDisplayType.notification);
status = await OneSignal.shared.getPermissionSubscriptionState();
var playerId = status.subscriptionStatus.userId;
print(playerId);
preferences.setString(Constants.PLAYER_ID, playerId);
}
Здесь я получаю уведомление от один сигнал и получить от него необходимые данные.
notificationHandler() {
OneSignal.shared.setNotificationReceivedHandler((OSNotification notification) {
// will be called whenever a notification is received
var data = notification.payload.additionalData;
print(data['body']['tripID'].toString());
showNotification(message);
});
Теперь я поднимаю свое пользовательское уведомление, использую зависимость flutter_local_notification
showNotification(var msg) async {
print("show notification is working");
AndroidNotificationDetails androidPlatformChannelSpecifics =
new AndroidNotificationDetails(
msg, msg, msg);
IOSNotificationDetails iOSPlatformChannelSpecifics =
new IOSNotificationDetails();
NotificationDetails platformChannelSpecifics = new NotificationDetails(
androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.show(
0, msg, msg, platformChannelSpecifics,
payload: 'item id 2');
}
Здесь notificatin будет повышаться для android и ios и платформа, и обратный вызов onNotificationcClick также объявляются здесь.
flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
var android = AndroidInitializationSettings('@mipmap/ic_launcher');
var iOS = IOSInitializationSettings();
var initSettings = InitializationSettings(android, iOS);
flutterLocalNotificationsPlugin.initialize(initSettings,
onSelectNotification: onNotification);
При нажатии на уведомление
Future onNotification(String payload) {
print(payload);
navigatorKey.currentState.pushNamed("/notification");
}
Это работает нормально, когда приложение находится в фоновом режиме или не убито. Когда его убивают, я не могу открыть свое приложение Flutter.
Любая помощь будет очень признательна .. !!