Флаттер - Как работать с методами FCR onResume и onLaunch? - PullRequest
1 голос
/ 01 декабря 2019

Моя проблема похожа на эту firebase_messaging onResume и onLaunch не работают однако я не думаю, что решение работает для меня, так как я уже пытаюсь получить доступ к полям в свойстве data.

В настоящее время я показываю push-уведомление пользователям, когда приложение работает, и эта часть работает нормально. Однако я также хочу показать уведомление, когда приложение находится в фоновом режиме, и когда пользователь щелкает по нему, они должны получать предупреждающее сообщение.

В методе onResume, если я это делаю, он работает, и когда я открываю уведомление, я вижу сообщение, напечатанное на консоли, а также сообщение Alert

onResume: (Map<String, dynamic> message) async {
            print("onResume: $message");
            Alert(context: context, title: 'Hi User!').show();
        }


Однако,если я пытаюсь получить доступ к свойству данных в заголовке, я вижу сообщение, напечатанное на консоли, но я не вижу никаких предупреждений

onResume: (Map<String, dynamic> message) async {
            print("onResume: $message");
            Alert(context: context, title: message['data']['user']['name']).show();
        }

Тот же фрагмент кода работает, когда приложение работаетоднако в свойстве onMessage для onLaunch и onResume я вижу описанное выше поведение. Ниже приведены журналы с консоли

W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->add(I)Z (light greylist, reflection) W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->add(ILjava/lang/String;)Z (light greylist, reflection) W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->size()I (light greylist, reflection) W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->get(I)I (light greylist, reflection) W/awesome_projec(13005): Accessing hidden method Landroid/os/WorkSource;->getName(I)Ljava/lang/String; (light greylist, reflection) E/FlutterFcmService(13005): Fatal: failed to find callback W/FirebaseMessaging(13005): Missing Default Notification Channel metadata in AndroidManifest. Default value will be used. E/FlutterFcmService(13005): Fatal: failed to find callback I/flutter (13005): onResume: {notification: {}, data: {collapse_key: com.example.awesome_project, google.original_priority: high, google.sent_time: 15751462256, google.delivered_priority: high, google.ttl: 2419200, from: 554610817622, location: {"latitude":24.6351,"longitude":70.2764}, user: {"phoneNumber":"1274545332","name":"Bobby94"}, google.message_id: 0:157514622564xxx}}

1 Ответ

0 голосов
/ 26 декабря 2019

Необходимо добавить новое значение ключа click_action: 'FLUTTER_NOTIFICATION_CLICK' в уведомлении. например:

{
    notification: {
        title: 'Title',
        body: 'Body',
        click_action: 'FLUTTER_NOTIFICATION_CLICK'
    }
}

Также добавьте следующий код в файл манифеста внутри тега активности

  <intent-filter>
           <action android:name="FLUTTER_NOTIFICATION_CLICK" />
           <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...