iOS アプリプッシュ移行手順 #
プロジェクトの設定 #
アプリプロジェクト設定のSigning & Capabilities画面の「Background Modes」内にある「Remote notifications」「Background fetch」を有効にしてあることを確認してください。
プッシュ通知用コンポーネントの組み込み #
RtoasterNotificationPlugin.xcframeworkをプロジェクトに組み込んでください。
組み込み方法は iOS SDKの導入をご確認ください。
アプリ起動時の設定 #
Rtoaster SDK v5.0以降ではコンポーネント化に伴い、SDK本体とは別にRtoasterNotificationモジュールを初期化する必要があります。
RtoasterNotification.setup
を Rtoaster.setup
後に実行してください。
SDK 4.xとは異なりプッシュ環境の指定は不要です。
サンプルコード #
try? Rtoaster.setup(/* 省略 */)
try? RtoasterNotification.setup()
プッシュ許諾 #
Rtoaster SDK 4.xまではセットアップ時にプッシュの許諾を求める仕様でしたが、
Rtoaster SDK v5.0以降ではプッシュ通知許諾画面を表示するメソッドとして分離しました。
そのため、アプリケーション初期化時以外の任意のタイミング (例: エンドユーザーにサービス利用規約を承認していただいた後))に許諾を求めることが可能となっています。
許諾結果はデバイストークンと共にトラッキング時に送信されます。
サンプルコード #
下記のサンプルコード内では、次のパラメータが使用されています。
引数 | 型 | 説明 | サンプル値 | 必須 |
---|---|---|---|---|
application | UIApplication * | アプリケーションオブジェクト | application | ○ |
delegate | UNUserNotificationCenterDelegate * | 通知センターのデリゲートオブジェクト | self | ○ |
completionHandler | (Bool, Error?) -> Void? | 結果応答の Block | なし | ○ |
RtoasterNotification.registerUserNotificationSettings(application, self,
{allowed, error in
if error != nil {
// エラー発生時の処理
return
}
if !allowed {
// ユーザーが拒否した場合の処理
return
}
})
Rtoaster のトラッキング実行 #
Rtoaster.track
を用いてアプリ上でトラッキングを行います。
この際、デバイストークンとユーザーIDの紐付がプッシュ配信システムに登録されます。
Rtoaster SDK v5.0以降では複雑な引数も容易に表現できるように、ビルダーパターンを用いて引数を設定するように変更されています。
※デバイストークンをトラッキングの実行を通じてRtoasterに送信しているため、アプリプッシュのみのご利用でもアプリ上でトラッキングを行う必要があります。
サンプルコード #
下記のサンプルコード内では、次のパラメータが使用されています。
引数 | 型 | 説明 | サンプル値 | 必須 |
---|---|---|---|---|
location | String * | アプリのロケーション(画面名など) | testLocation | ○ |
callback | ((Error) -> Void)? | 結果応答の Block | (エラー内容を表示する処理) |
v5.0 #
do {
try? Rtoaster.track(
.Builder()
.location(Location("testLocation"))
.build()
).onFailure { [weak self] error in
print("Communication error: \(error.toMap())")
}
} catch {
print("Parameter error: \(error.toMap())")
}
v4.x #
Rtoaster.track(
withLocation: "testLocation",
withAppKeys: [:],
withCompletionHandler: { [self] result in
if let error = result.error {
LogFile.writeln("error: \(error)")
}
}
)
メソッド対応表 #
Rtoaster SDK v5.0以降ではコンポーネント化やメソッド名の見直しに伴い、プッシュ通知に関するメソッド名やクラス名が以下のように変更となっています。
各メソッドの詳細については、Rtoaster SDK v5.0 APIリファレンスをご覧ください。
デバイストークン(登録 ID)とユーザーIDの登録 #
v5.0 | v4.x |
---|---|
RtoasterNotification.setDeviceToken | Rtoaster.registerDeviceToken |
Rtoaster.setUserId | Rtoaster.setMemberId |
カスタムプロパティの利用・効果測定 #
v5.0 | v4.x |
---|---|
RtoasterNotification.didReceiveRemoteNotification | Rtoaster.didReceiveRemoteNotification |
RtoasterNotification.addPushUserInfoQueueObserver | Rtoaster.addPushUserInfoQueueObserver |
RtoasterNotification.removePushUserInfoQueueObserver | Rtoaster.removePushUserInfoQueueObserver |
RtoasterNotification.readCustomProperty | Rtoaster.readCustomProperty |
プッシュ配信の動作確認 #
Rtoaster SDK v5.0では多くの実装変更が行われておりますので、再度の確認を行っていただくことをお勧めします。
Push Payload部仕様 #
APNS標準に準拠しています。
Payload Key Reference の「Table 9-1 Keys and values of the aps dictionary」をご参照ください。
カスタムプロパティ項目 #
項目名 | 型 | 意味 |
---|---|---|
darjeeling_silent | Dictionary | カスタムプロパティ構造 |
_rtsdk.XXXX | String | 内部で使用(直接の使用、変更、編集不可) XXXX部分は任意の文字列 |
_rtp.XXXX | String | 内部で使用(直接の使用、変更、編集不可) XXXX部分は任意の文字列 |
_rtp.c.XXXX | String | 内部で使用(直接の使用、変更、編集不可) XXXX部分はカスタムプロパティの各キーの設定値 |
- darjeeling_silent 内の項目は内部項目となりますので直接の利用は避けてください。