プッシュ通知受信履歴管理¶
RichFlyer SDKは、プッシュ通知の受信履歴を最大10件保持しています。 その履歴の取得及び、履歴から指定したプッシュ通知の内容をアプリ上で表示させることができます.
プッシュ通知受信履歴の取得¶
保持している10件のプッシュ通知受信履歴を取得します。
// RichflyerSdkFlutterクラス
Future<List<RFContent>> getReceivedData()
RFContentクラス¶
受信履歴から取得できるプッシュ通知の情報はRFContentオブジェクトに保持されます。
class RFContent{
final int contentType; // 通知に添付したコンテンツのタイプ
final String? gifPath; // 添付したGIFの保存先
final String? imagePath; // 添付した画像の保存先
final String? message; // 通知メッセージ本文
final String? moviePath; // 添付した動画の保存先
final int notificationDate; // 配信サーバが通知を送信した日時
final String notificationId; // 通知ID
final int receivedDate; // 端末が通知を受信した日時
final String title; // 通知タイトル
}
contentType:通知タイプの種類は以下の通りです。
通知タイプ | 値 |
---|---|
テキストのみ | 0 |
画像添付 | 1 |
GIF添付 | 2 |
動画添付 | 3 |
実装例¶
Dart
final _richflyerSdkFlutterPlugin = RichflyerSdkFlutter();
@override
void initState() {
super.initState();
getReceivedData();
}
// プッシュ通知受信履歴の取得
Future<void> getReceivedData() async {
final receivedData = await _richflyerSdkFlutterPlugin.getReceivedData();
for(RFContent content in receivedData){
if(content.message != null){
debugPrint("通知ID :${content.notificationId}");
debugPrint("タイトル :${content.title}");
debugPrint("メッセージ :${content.message}");
}
}
}
最新のプッシュ通知¶
保持している受信履歴から直近に受信したプッシュ通知の情報を取得します。
// RichflyerSdkFlutterクラス
Future<RFContent?> getLatestReceivedData()
実装例¶
Dart
class _ReceivedPageState extends State<ReceivedPage> {
final _richflyerSdkFlutterPlugin = RichflyerSdkFlutter();
@override
void initState() {
super.initState();
getLatestReceivedData();
}
// 最新のプッシュ通知の取得
Future<void> getLatestReceivedData() async {
final latestReceivedData = await _richflyerSdkFlutterPlugin.getLatestReceivedData();
if(latestReceivedData != null){
if(latestReceivedData.message != null){
debugPrint("通知ID :${latestReceivedData.notificationId}";
debugPrint("タイトル :${latestReceivedData.title}");
debugPrint("メッセージ :${latestReceivedData.message}");
}
}
}
}
受信した通知の表示¶
受信履歴から取得した通知情報をダイアログで表示することができます。
iOS | Android |
---|---|
通知をダイアログで表示するには以下のメソッドを呼びます。
// RichflyerSdkFlutterクラス
Future<void> showReceivedData(String notificationId)
パラメータ | 内容 |
---|---|
notificationId | 通知ID(RFContent.notificationId) |
ボタンタップ時のイベント
表示されたダイアログでボタンをタップした場合、プッシュ通知開封時の処理で設定したコールバックでイベントをハンドルできます。
実装例¶
Dart
// 通知の表示
Future<void> showReceivedData() async {
final content = await getLatestReceivedData();
if (content != null) {
await _richflyerSdkFlutterPlugin.showReceivedData(content.notificationId);
}
}