プッシュ通知の導入手順

Thing-IF SDK では、Thing からの応答を受け取る処理などでプッシュ通知を利用します。iOS 環境で Kii Cloud のプッシュ通知を使用する場合、Apple Push Notification service (APNs) を利用する準備を行う必要があります。Kii Cloud への設定のほか、APNs の設定やそれに合わせたビルド環境の整備を行います。

APNs や iOS の実行環境の技術的な概要については、プッシュ通知の技術概要 をご覧ください。

Thing Interaction Framework の ゲートウェイ 機能で、ゲートウェイアプリを構築する場合(エンドノードを扱わない場合)、プッシュ通知の初期化は不要です。

以下の手順に従って操作すると、Kii Cloud のプッシュ通知を受け取る設定が完了したことになります。

導入作業

APNs によるプッシュ通知を利用するには、様々な設定が必要です。これらの設定作業や、プッシュ通知の実装手順は複雑なため、チュートリアルに従って準備することをおすすめします。

まずは、iOS プッシュ通知設定チュートリアル の手順に従って、設定、実装、テストを実行し、プッシュ通知が動く状態にします。開発プロジェクトへの Kii Cloud SDK の組み込みなど、実施済みの作業は省略できます。Thing-IF SDK は Swift 2.3 にのみ対応しているため、プッシュチュートリアルでもこの言語を選択してください。

作業が完了したら、Thing-IF 向けの変更 を参照してください。

チュートリアルの手順で説明しているのは、開発用(Development)の環境に対する設定方法です。モバイルアプリを配布するまでには、同様の方法によって配布用(Production)に対する設定も完了しておく必要があります。また、Thing-IF SDK の利用には、チュートリアルでは触れていない Thing-IF SDK の導入作業 も必要です。

Thing-IF 向けの変更

チュートリアルでの動作が確認できたら、Thing-IF SDK の実装では不要な部分を削除します。Kii Cloud SDK で案内しているデバイスのインストール操作は Thing-IF SDK では別の方法で実行するため、Kii Cloud SDK の API の代わりに Thing-IF SDK の API を呼び出すようにします。

AppDelegate の application:didRegisterForRemoteNotificationsWithDeviceToken: メソッドから、KiiPushInstallation.installWithDeviceToken メソッドの呼び出しを削除します。修正後は以下のようになります。

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
  let username = "user1"
  let password = "123ABC"
  KiiUser.authenticate(username, withPassword: password) { (user: KiiUser?, error: NSError?) -> Void in
    if (error != nil) {
      print("Failed to authenticate: \(error!.userInfo["description"])")
      return
    }

  }
}

ここでは、一旦、上記のままにしておいてください。後で、削除した API の代わりに Thing-IF 用のプッシュ通知初期化 API を埋め込みます。詳しくは、「初期化コードの実装」の デバイスのインストール をご覧ください。

また、テストで使用した user1 でのログイン処理は、モバイルアプリの仕様に合わせて書き換えてください。「初期化コードの実装」のサンプルコードでは、オーナー となるユーザーを仮ユーザーで作成する方法を紹介します。ログイン画面を実装してオーナーユーザーでログインする場合は、上記のログイン処理をその画面の処理クラスに移動してください。また、ログイン完了の実装位置で APNs のデバイストークン deviceToken の値を利用できるように、プログラム構造の変更を行ってください。

プッシュ通知のチューニング

プッシュ通知の初期化処理で使用している API の一部は、Kii Cloud に依存しない iOS の API です。

APNs のカテゴリー機能など、APNs の機能を使ってプッシュ通知の動作をカスタマイズすることもできます。実装方法は Kii Cloud SDK のプッシュ通知の APNs の初期化処理 を参考にしてください。