プッシュ通知受信履歴管理¶
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];
}];