FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

Flutter(Dart)用NCMB SDKの機能について(プッシュ通知)

f:id:mbaasdevrel:20200110154553p:plain

非公式ですが、Flutter(Dartでも)で使えるNCMB SDKを開発しています。

ncmb | Dart Package

今回はプッシュ通知の処理について解説します。

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:
      アプリがフォアグラウンドにあって、プッシュ通知が届いた場合
  • 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を活用してください!

NCMBMania/ncmb-dart: NCMB library for Dart and Flutter.

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。