プッシュ通知受信履歴管理¶
RichFlyer SDKは、端末内にプッシュ通知の受信履歴を最大10件保持しています。
その履歴の取得及び、履歴から指定したプッシュ通知の内容をアプリ上で表示させることができます。
プッシュ通知受信履歴の取得¶
保持している10件のプッシュ通知受信履歴を取得します。
// Class RichFlyer.RFPluginScript
public static RFContent[] GetReceivedData();
RFContentクラス¶
RFContentクラスは受信したプッシュ通知の情報を保持します。
public class RFContent
{
public string Title; // プッシュ通知のタイトル
public string Body; // プッシュ通知本文
public string NotificationId; // プッシュ通知に割り当てられるID
public string ImagePath; // プッシュ通知に添付される静止画像のパス
public long ReceivedDateUnixTime; // 端末がプッシュ通知を受信した日時(UnixTime)
public long NotificationDateUnixTime; // 端末がプッシュ配信日時(UnixTime)
public RFContentType Type; // プッシュ通知の種別
public RFAction[] ActionButtons; // アクションボタン
public string ExtendedProperty; // 拡張プロパティ
// プッシュ通知受信日時をDateTimeオブジェクトで取得
public DateTime getReceivedDate();
// プッシュ配信受信日時をDateTimeオブジェクトで取得
public DateTime getNotificationDate();
}
RFContentType¶
RFContentTypeはプッシュ通知の種別を定義しています。
public enum RFContentType
{
RFContentTypeText, //テキストのみ
RFContentTypeImage, //静止画像を添付している
RFContentTypeGif, //GIF画像を添付している
RFContentTypeMovie //動画を添付している
}
RFActionクラス¶
RFActionクラスはプッシュ通知のアクションボタンの情報を保持します。
public class RFAction
{
public string Title; // ボタンのタイトル
public string Type; // カスタムアクションの種類(http / scheme)
public string Value; // ボタンに設定した値
public int Index; // ボタンのインデックス
}
実装例¶
実装例
foreach (RFContent content in RFPluginScript.GetReceivedData())
{
Debug.Log($"RF-タイトル: {content.Title}");
Debug.Log($"RF-本文: {content.Body}");
Debug.Log($"RF-タイプ: {content.Type}");
Debug.Log($"RF-受信日時: {content.getReceivedDate().ToString()}");
Debug.Log($"RF-配信日時: {content.getNotificationDate().ToString()}");
Debug.Log($"RF-イメージパス: {content.ImagePath}");
if (content.ActionButtons == null) continue;
foreach (RFAction action in content.ActionButtons)
{
Debug.Log($"RF---ボタンインデックス: {action.Index}");
Debug.Log($"RF---ボタンタイトル: {action.Title}");
Debug.Log($"RF---ボタンの値: {action.Value}");
Debug.Log($"RF---値種別: {action.Type}");
}
}
最新のプッシュ通知¶
保持している受信履歴から直近に受信したプッシュ通知の情報を取得します。
// Class RichFlyer.RFPluginScript
static RFContent GetLatestReceivedData();
実装例¶
実装例
RFContent content = RFPluginScript.GetLatestReceivedData();
Debug.Log($"RF-タイトル: {content.Title}");
Debug.Log($"RF-本文: {content.Body}");
Debug.Log($"RF-タイプ: {content.Type}");
Debug.Log($"RF-受信日時: {content.getReceivedDate().ToString()}");
Debug.Log($"RF-配信日時: {content.getNotificationDate().ToString()}");
Debug.Log($"RF-イメージパス: {content.ImagePath}");
if (content.ActionButtons != null) {
foreach (RFAction action in content.ActionButtons)
{
Debug.Log($"RF---ボタンインデックス: {action.Index}");
Debug.Log($"RF---ボタンタイトル: {action.Title}");
Debug.Log($"RF---ボタンの値: {action.Value}");
Debug.Log($"RF---値種別: {action.Type}");
}
}
受信した通知の表示¶
受信履歴から取得した通知情報をダイアログで表示することができます。
iOS | Android |
---|---|
// Class RFContentDisplay
static void DisplayContent(string notificationId, RFContentDisplayCallback callback);
パラメータ | 内容 |
---|---|
notificationId | 通知ID(RFContent.NotificationId) |
callback | ボタンが押されたときに呼ばれるリスナー |
ボタンが押されたときに呼ばれるリスナー¶
delegate void RFContentDisplayCallback(string buttonTitle, string buttonValue, string buttonValueType, ulong buttonIndex);
パラメータ | 内容 |
---|---|
buttonTitle | ボタンのタイトル |
buttonValue | ボタンに設定した値 |
buttonValueType | カスタムアクションの種類。 http: "https"または"http"で始まるurl scheme: カスタムスキームで始まるurl |
buttonIndex | ボタンのインデックス |
実装例¶
実装例
RFContent content = RFPluginScript.GetLatestReceivedData();
RFPluginScript.DisplayContent(content.NotificationId, (string buttonTitle, string buttonValue, string buttonValueType, ulong buttonIndex) =>
{
Debug.Log($"RF---index: {buttonIndex}");
Debug.Log($"RF---title: {buttonTitle}");
Debug.Log($"RF---type: {buttonValueType}");
Debug.Log($"RF---value: {buttonValue}");
});