非公式ですが、Flutter(Dartでも)で使えるNCMB SDKを開発しています。
今回はプッシュ通知の処理について解説します。
SDKのインポート
まずはSDKをインポートします。pubspec.yamlは以下のように記述します。
dependencies: ncmb: ^0.1.0
コードでは次のようにインポートします。
import 'package:ncmb/ncmb.dart';
flutter pub get
でライブラリをインポートします。プッシュ通知はスマートフォンアプリでしか使えないので、Flutter以外の環境では利用できなくなりました。
SDKの初期化
次にSDKを初期化します。
NCMB ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY');
デバイストークンの保存について
デバイストークンの保存は ncmb.Installation.register()
で行います。このメソッドだけでiOSの場合は承認ダイアログを表示します。承認が取れた場合のみ、デバイストークンを保存します。
var installation = await ncmb.Installation.register();
プッシュ通知の受信
プッシュ通知を受信し、それを開くと ncmb.Installation.receive
が呼び出されます。
ncmb.Installation.receive((String type, Map message) { print(type); print(message); });
引数は二つあります。
- type:
launch/resume/messageの3つの文字列が入ります- launch:
プッシュ通知を開いてアプリが立ち上がった場合 - resume:
アプリがバックグラウンドで開いていて、プッシュ通知でフォアグラウンドになった場合 - message:
アプリがフォアグラウンドにあって、プッシュ通知が届いた場合
- launch:
- message:
プッシュ通知の情報
例えば message には以下のような情報が入ってきます。 "a": "b" はプッシュ通知の管理画面で指定したユーザ独自のデータです。
{ "aps": { "alert": { "title": "テスト", "body": "テストです" }, "sound": "default" }, "com.nifcloud.mbaas.PushId": "ypTtFttho6rSoxQb", "a": "b", "com.nifty.PushId": "ypTtFttho6rSoxQb" }
この値を使ってアプリの挙動を変更できます。
まとめ
プッシュ通知を実装したことで、このSDKはFlutter向け(少なくともスマートフォン向け)になりました。Flutter Webでは恐らく利用できないでしょう。特化したことで、スマートフォンで利用しやすいよう機能を追加できます。今後、さらにバージョンアップを行っていきます。なお、ソースコードは下記のリポジトリにて公開しています。ライセンスはMIT Licenseです。ぜひFlutterでもNCMBを活用してください!