NativeScriptでプッシュ通知を実装したので、大まかな流れだけ書いてみようと思う。なお、BaaSには、Reproというサービスを使用した。
iOS
実装の流れ
- CSRファイルの作成
- 開発用証明書(.cer)の作成
- AppIDの作成
- 端末の登録
- プロビショニングプロファイルの作成
- APNs用証明書(.cer)の作成
- APNs用証明書(.p12)の作成、Reproへのアップロード
- Reproのネイティブライブラリを使うため、NativeScript Pluginを作成
- NativeScript Plugin側で、Repro SDK(CocoaPods)と
*.framework
の依存関係を記述
- Reproのネイティブ実装をJavaScriptで実装(APNsへの端末の登録・デバイストークンの設定)
1-5は、既存のものがあればそれを利用してよく、6,7でプッシュ通知用の証明書をつくることが重要である。こうしてみると、1-7はネイティブアプリのフローと全く変わらないことがわかる。また、8以降もObjective-C=>JavaScriptの変換だけなので、慣れればそこまで大変ではない。実際、(僕の場合)時間がかかったのは、経験の少ない、1-7の証明書関連だった。
他に注意点としては以下がある。
- 開発用証明書と同じCSRファイルでAPNs用証明書を作成すること
- プッシュ通知はiOS Simulatorでは動かないので、実機で検証する必要がある
- AdHoc版ではプッシュ通知が送信できない?時があるので、それ用の証明書をつくるほうがよい
参考
Android
実装の流れ
- Firebase Consoleでプロジェクトを作成
- クラウドメッセージングのAPIキーを生成
- APIキーをReproに登録
- 端末にGoogel Palyストアをインストール(エミュレーターなどで、未インストールの場合がある)
- Reproのネイティブライブラリを使うため、NativeScript Pluginを作成
- NativeScript Plugin側で、Repro SDKの依存関係を記述
- NativeScript Plugin側で、AndroidManifest.xmlの設定を記述
- Reproのネイティブ実装をJavaScriptで実装(カスタムアクティビティでデバイストークンの登録)
こちらもiOSと同様で、1-4はネイティブと同じフローとなる。4をもう少し早く切り分けられると良かったと思う...。ネイティブの実装をしっかり認識しておくことはいずれにせよ必要だなと感じた。
参考
おわり
以上、NativeScriptでのプッシュ通知実装についてまとめてみました。参考になれば幸いです。
PS
最近爆笑したやつ=>【超巨大】チョコエッグの中に入ってみた! - YouTube
AUTHOR
デロイト トーマツ ウェブサービス株式会社はアマゾン ウェブ サービス(AWS)に
専門性や実績を認定された公式パートナーです。