コンテンツにスキップ

プッシュ通知受信履歴管理

RichFlyer SDKは、プッシュ通知の受信履歴を最大10件保持しています。
その履歴の取得及び、履歴から指定したプッシュ通知の内容をアプリ上で表示させることができます。


プッシュ通知受信履歴の取得

保持している10件のプッシュ通知受信履歴を取得します。

// Class RFApp
static func getReceivedData()
// Class RFApp
+ getReceivedData

RFContentクラスのプロパティ

受信履歴から取得できるプッシュ通知の情報はRFContentオブジェクトに保持されます。

プロパティ 内容
title プッシュ通知のタイトル
body プッシュ通知の本文
notificationId プッシュ通知に割り当てられるID
imagePath プッシュ通知に添付される静止画像のパス
receivedDate 端末がプッシュ通知を受信した日時
notificationDate RichFlyerからプッシュ通知が配信された日時

実装例

Swift

if let history : Array<RFContent> = RFApp.getReceivedData() {
        history.forEach{content in
            //プッシュ通知のタイトル
            print(content.title)
            //プッシュ通知の本文
            print(content.body)
            //保存されている画像のパス
            print(content.imagePath)
            //通知ID
            print(content.notificationId)
        }
    }

Objective-C

NSArray<RFContent*>* history = [RFApp getReceivedData];
for (RFContent* content in history) {
  //プッシュ通知のタイトル
  NSLog(@"%@", content.title);
  //プッシュ通知の本文
  NSLog(@"%@", content.body);
  //保存されている画像のパス
  NSLog(@"%@", content.imagePath);
  //通知ID
  NSLog(@"%@", content.notificationId);
}


最新のプッシュ通知

保持している受信履歴から直近に受信したプッシュ通知の情報を取得します。

// Class RFApp
static func getLatestReceivedData()
// Class RFApp
+ getLatestReceivedData

実装例

Swift

if let latestContent : RFContent = RFApp.getLatestReceivedData() {
  //プッシュ通知のタイトル
  print(latestContent.title)
  //プッシュ通知の本文
  print(latestContent.body)
  //保存されている画像のパス
  print(latestContent.imagePath)
  //通知ID
  print(latestContent.notificationId)
}

Objective-C

RFContent* latestContent = [RFApp getLatestReceivedData];

//プッシュ通知のタイトル
NSLog(@"%@", content.title);
//プッシュ通知の本文
NSLog(@"%@", content.body);
//保存されている画像のパス
NSLog(@"%@", content.imagePath);
//通知ID
NSLog(@"%@", content.notificationId);


受信した通知の表示

受信履歴から取得した通知情報をダイアログで表示することができます。


初期化

// Class RFContentDisplay
init(content: RFContent)
// Class RFContentDisplay
- initWithContent:
パラメータ 内容
content 通知情報(RFContentオブジェクト)

ボタンの色を設定

// Class RFContentDisplay
func setButtonColor(color: UIColor)
// Class RFContentDisplay
- setButtonColor:
パラメータ 内容
color 色情報(UIColor)

表示

// Class RFContentDisplay
func present(parent: UIViewController, completeHandler: ((RFAction)->())?)
// Class RFContentDisplay
- present:completeHandler
パラメータ 内容
parent 親となるViewController
completeHandler ボタンが押されたときに呼ばれるハンドラ

非表示

// Class RFContentDisplay
func dismiss()
// Class RFContentDisplay
- dismiss

実装例

Swift

if let latestContent : RFContent = RFApp.getLatestReceivedData() {
  let display = RFContentDisplay.init(content: latestContent)
    display.present(parent: self, completeHandler:{ (action : RFAction) in
      if (action.type == "url") {
        if let url = URL(string: action.value) {
          UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
      }
      display.dismiss()
  })
    }

Objective-C

RFContent* latestContent = [RFApp getLatestReceivedData];
RFContentDisplay* rfDisplay = [[RFContentDisplay alloc] initWithContent:latestContent];
[rfDisplay present:self completeHandler:^(RFAction* action) {

  if ([action.getType isEqualToString:@"url"]) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:action.getValue]];
  }
  [rfDisplay dismiss];
}];