7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Swift】【Ruby on Rails】プッシュ通知ASPを利用した通知の導入

Last updated at Posted at 2015-05-28

概要

WEBアプリ(Rails)からiOSアプリ(Swift)にプッシュ通知を送る。
特定のユーザのみに通知が遅れるようにする。

プッシュ通知とは?

アプリ内でプッシュ通知を行うこともできるんですが、外部から通知を行うことも可能です。
アプリ内のプッシュ(ローカルプッシュ)と外部からのプッシュ(リモートプッシュ)の使い所は
僕は以下のように考えています。

・ローカルプッシュ
スケジューリングされたイベントを通知する場合
処理の完了や開始などを通知

メリット 簡単
デメリット 外部からの情報をプッシュするためには一手間必要
 ⇨ データ通信機能を自作してアプリ内でプッシュ

・リモートプッシュ
外部主体の通知をする場合
一斉に情報を通知したい場合

メリット とにかく便利
デメリット 手間

構成

image
本来ならプッシュ通知のために複雑な構成をしなくてはいけないところを、
簡単なコーディングでプッシュ通知が実現できます。
管理コンソールからプッシュ通知をするだけならRailsサーバなしの構成でも大丈夫です。

【Swift】mobile backend を利用したpush通知 http://qiita.com/tdaiku/items/6471906e578435a8b3ed

サーバから送信するために

1 vendor/assets/javascripts にmobile backendにて提供されているJavascriptファイルを配置

2 app/assets/javascripts/application.jsに
  //= require ncmb-latest.min.js
 を追記

3 処理を行う機能のcoffee scriptファイルに

script.js.coffee

NCMB.initialize("APP_KEY", "CL_KEY");
        NCMB.Push.send {
          'immediateDeliveryFlag': true
          'target': ['ios']
          "searchCondition": 
            "deviceToken": "deviceToken"
          'badgeIncrementFlag': false
          'deliveryExpirationTime':'10 day'
          'title': 'title'
          'message': 'message'
        },
          success: ->
            alert 'Successful!'
            # 成功
            return
          error: (error) ->
            # エラー
            alert 'Failed'
            return

・deleveryExpirationTimeをセットしないとなぜか送られなかった
・ユーザ単体に送信する機能のためにiOSアプリからdeviceTokenを随時RailsSVに送信している
 ⇨OSアップデートなどでdeviceTokenが変わる可能性があるらしいので、、、
 ⇨端末のdeviceTokenはNCMBInstallation.currentInstallation().deviceTokenで取得できる
・targetは準備されていない方が入っている場合、指定しないと配信エラーになる
 ⇨androidはキーを設定、iOSは証明書を設定する必要がある

まとめ

日本語のドキュメントがあるって素晴らしい。
ただなかなかマニュアルが見辛いです。
APIリファレンスを見ていても、パラメータのセット例が書いてなかったりしてセットの方法がわからなかったりします。
http://mb.cloud.nifty.com/doc/
iOS、Android、javascriptの切り替えがコンボボックスってのも操作性が悪いですね。

ライブラリが整備されていて、きちんとした管理画面があるので自作するコストを考えればかなり楽です。
オススメ。

有料プランの導入も視野に入れていこうかと思います。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?