web-dev-qa-db-ja.com

Flutter:アプリが閉じていてもプッシュ通知

リマインダーのように動作するフラッター付きのアプリケーションを作成しました。
アプリが閉じている場合でも、ユーザーに通知を表示するにはどうすればよいですか?

14
SlimenTN

リマインダーについては Flutter Local Notifications Plugin を推奨します。強力なスケジューリングAPIを備えています。ローカル通知のドキュメントから:

通知が表示されるタイミングのスケジュール-定期的に通知を表示する(間隔ベース)-指定された時刻に毎日表示されるように通知をスケジュールする-指定された日時に毎週表示されるように通知をスケジュールする-ユーザーがタップしたときに処理する機能アプリがフォアグラウンド、バックグラウンド、またはterminatedの場合の通知

また、プッシュ通知の場合、 Firebase Cloud Messaging または one signal プラグインを使用するか、 platform-channels を使用してネイティブに実装できます

編集:アプリが終了した場合でも、特定の条件に従って通知を起動することもできます。これは、バックグラウンドでDartコードを実行することで達成できます。公式FAQからの引用:

FlutterアプリのバックグラウンドでDartコードを実行できますか?はい、iOSとAndroidの両方でバックグラウンドプロセスでDartコードを実行できます。詳細については、中記事を参照してください バックグラウンドでのFlutterプラグインとジオフェンシングによるDartの実行。

11
a2en

私もこの問題に直面したので、これらは私の学習です

私の場合:App-ResumeまたはApp-background状態で通知を受け取ることができますが、App-Close状態では通知を受け取りません。

この場合、通知本文は:でした

{notification: {body: null, title: null}, data: {body: hello, title: world}}

App-Closed状態で通知を受信するために、通知を

{notification: {body: abc, title: abc}, data: {url: string, body: string, title: string}}
1
Tushar Pandey

スケジュールされた通知をフラッターで使用できます。

 var scheduledNotificationDateTime =
        new DateTime.now().add(new Duration(seconds: 5));
  var androidPlatformChannelSpecifics =
     new AndroidNotificationDetails('your other channel id',
    'your other channel name', 'your other channel description');
  var iOSPlatformChannelSpecifics =
   new IOSNotificationDetails();
   NotificationDetails platformChannelSpecifics = new 
  NotificationDetails(
   androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
  await flutterLocalNotificationsPlugin.schedule(
 0,
 'scheduled title',
 'scheduled body',
 scheduledNotificationDateTime,
 platformChannelSpecifics);
0
PrakashKing