(元記事)
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版ではプッシュ通知が送信できない?時があるので、それ用の証明書をつくるほうがよい
参考
- プッシュ通知(iOS)— Repro ドキュメント
- iOSでプッシュ通知を実装する方法の超詳細まとめ(前編) | Lancork
- プッシュ通知に必要な証明書の作り方2016 - Qiita
- 【ios】AdHoc(デプロイゲートでの)版プッシュ通知が遅れなくてハマったときのメモ - とりあえずphpとか
- APNSで通知が飛ばない場合に考えられる問題 - Qiita
- Xcode 8 の新しい Signing 機能について | Developers.IO
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をもう少し早く切り分けられると良かったと思う...。ネイティブの実装をしっかり認識しておくことはいずれにせよ必要だなと感じた。
参考
- プッシュ通知(Android)— Repro ドキュメント
- Androidで使えるO2O技術まとめ解説(終):AndroidビームとPush通知で最強のO2Oアプリを作る (1/3) - @IT
- GenymotionにGoogle Playストアをインストールする方法。
おわり
以上、NativeScriptでのプッシュ通知実装についてまとめてみました。参考になれば幸いです。