iOS 移行手順

iOS アプリプッシュ移行手順 #

プロジェクトの設定 #

アプリプロジェクト設定のSigning & Capabilities画面の「Background Modes」内にある「Remote notifications」「Background fetch」を有効にしてあることを確認してください。

プッシュ通知用コンポーネントの組み込み #

RtoasterNotificationPlugin.xcframeworkをプロジェクトに組み込んでください。
組み込み方法は iOS SDKの導入をご確認ください。

アプリ起動時の設定 #

Rtoaster SDK v5.0以降ではコンポーネント化に伴い、SDK本体とは別にRtoasterNotificationモジュールを初期化する必要があります。
RtoasterNotification.setupRtoaster.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 内の項目は内部項目となりますので直接の利用は避けてください。