Откройте приложение Flutter из уведомления pu sh, когда оно убито - PullRequest
1 голос
/ 28 января 2020

Я новичок, чтобы трепетать и пытаюсь реализовать уведомление 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.

Любая помощь будет очень признательна .. !!

...