ニフクラmBaaSお役立ちブログ

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

プッシュ通知を絞り込んで配信できるように情報を追加する

mBaaSのプッシュ通知は細かく絞り込めるように管理画面上で設定が行えます。その際、絞り込み条件はデバイストークンの保存されているinstallationクラスの中からのみ行います。

そこでアプリの設定画面やユーザの利用履歴を使ってinstallationクラスに情報を追加してみましょう。

Monacaの場合

Monacaの場合、 window.NCMB.monaca.getInstallationId を使ってobjectIdを取得し、それを使って ncmb.Installation を検索します。 window.NCMB.monaca.getInstallationIdが常に値を返してくれるとは限らない(デバイストークンの保存ができていないといけません)ので、setIntervalなどを使って定期的に繰り返し実行する必要があります。

window.NCMB.monaca.getInstallationId(function(id) {
  ncmb.Installation.fetchById(id)
    .then(function(installation){
      installation.set("msg", "Hello");
      installation.update()
        .then(function(installation){
          // 更新後の処理
          alert("登録完了");
        })
       .catch(function(err){
          // エラー処理
      });
    })
    .catch(function(err) {
      // エラー処理
    })
});

iOSの場合

iOSの場合は NCMBInstallation.currentInstallation() にて情報が取得できます。後はデータストアと同じように扱えますので特に問題ないでしょう。

let installation = NCMBInstallation.currentInstallation()
installation.setDeviceTokenFromData(deviceToken)
installation.addObject("Hello", forKey: "msg")
installation.saveInBackgroundWithBlock { (error: NSError!) -> Void in
  if (error != nil){
    // 端末情報の登録に失敗した時の処理
  }else{
    // 端末情報の登録に成功した時の処理
  }

Androidの場合

Androidの場合、 NCMBInstallation.getCurrentInstallation() を使います。こちらもiOSと同様にデータストアのように使えますので特に問題ないかと思います。

final NCMBInstallation installation = NCMBInstallation.getCurrentInstallation();
installation.put("msg", "Hello");
installation.saveInBackground(new DoneCallback() {
    @Override
    public void done(NCMBException e) {
        if (e != null) {
            // エラー処理
        }else{
            // 処理成功
        }
    }
});

Unityの場合

Unityの場合、 NCMBInstallation.getCurrentInstallation() を使います。後はAddメソッドを使ってキーの値を設定し、SaveAsyncで保存処理を行います。

NCMBInstallation installation = NCMBInstallation.getCurrentInstallation();

installation.Add ("msg", "Hello");
installation.SaveAsync ((NCMBException e) => {
  if (e != null) {
    // エラー処理
  } else {
    // 処理成功
  }
});

installationにデータを追加すれば、その項目を使ってプッシュ通知配信対象の絞り込みができます。プッシュ通知をより活用していくためにも自由にデータを追加してください。