GCM+CordovaでAndroid Oreoにプッシュ通知する際の注意

あれ通知されない?

Android Oreo+targetSdkVersion=26でビルドしたアプリに対してプッシュ通知した際、Android Oreoからの新機能である「通知チャンネル」に対応しないと通知が表示されません。
https://qiita.com/mm36/items/0d356e814ef3da54c9da

Cordovaの場合

Cordovaでプッシュ通知をする場合、phonegap-plugin-pushを使うケースが多いと思います。

このプラグインも最新版(v2.2.2 2018/04/11現在)では通知チャンネルに対応していて、ちゃんと通知が届きます。
しかし、v2.xはFCM対応しているので、GCMのままが良いんだっ・・という場合には使えません。
(何でいまだにGCM使ってんの?というツッコミはなしで・・)

応急処置

そこで、phonegap-plugin-push(のv1.xブランチ)をforkして、通知チャンネルに対応しました。
https://github.com/pscsrv/phonegap-plugin-push/commit/e8898610f3ad42404a85946548a5828563f9bd83

以下のURLをインポートすればインストールできます。
https://github.com/pscsrv/phonegap-plugin-push.git#v1.x_oreo

init関数でデフォルトの通知チャンネルを作成して、通知を受信した際は登録したデフォルトのチャンネルで通知を表示する、といった流れです。応急処置なので、最低限の実装です。
※v2.xなら通知チャンネルの作成や削除もできます。

GCMは2019/04/11に削除される

2019/04/11にGCMのサーバーとクライアントAPIが削除されることがアナウンスされました。
https://developers.google.com/cloud-messaging/android/android-migrate-fcm

とりあえず延命措置してみましたが、さっさとFCMに移行しましょう!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.