はじめに
自前で用意したサーバを使用してリモートPush通知を実装したものの、
invalidトークンの除去や、テスト環境の切り替え等めんどくさかったので無料サービス探したところあったので使ってみた。
できること
- 無料で500万端末まで登録可能
- 設定したら自動定期配信してくれる
- APIからの配信
- tag付した特定ユーザに配信(有料になった)
使い方
証明書を発行してSDKを組み込みます。
公式サイトにわかりやすく手順が書かれているため、
割愛します。(公式サイトで見てください)
つまづいた点
1つつまづいた注意点としては、swiftのDEBUG環境(AppStoreからダウンロードしたか、Xcodeからデバッグしたかの判断用)のところで
-D DEBUG
とあるのを
"-D"
"DEBUG"
と、分けて追加したところくらい。("も追加した)
これを付けておくとXcodeからビルドした際は
#if DEBUG
の処理を行い、AppStoreからダウンロードした際は
#else
が呼ばれるようになります。
(Releaseのところから-D DEBUG
を消しておくことでelseの処理になる)
わざわざこれを分ける理由としてAppleのプッシュサービスのAPNSが
テスト環境(Xcodeから)と本番環境(AppStore)からで送る方法が違うそうです。
あと、実行してAppDelegateの参照でエラーが出たら、
よくある質問の
[iOS] UIApplicationDelegate を置き換えない方法
を試したところ解決しました
APIから通知を叩く
ユーザの動きで通知が飛ばせます。(tag付けで特定の人に送れる!<-有料になった)
公式サイトによるとHeaderやBodyを使って送れるとのこと。
以下サンプル
curl
curl -v -H "X-Api-Key: YOUR_KEY" -d '{"message": "Hello"}' https://push-server-api.logbk.net/v1/delivery
-v : 詳細情報表示
-H : ヘッダ情報送信
-d : Body送信
今送りたい!ってときに便利ですね。
cronで定期的にシェル回してもいいと思います。
ブラウザ
ブラウザ上からはHeaderやBody情報を送るのは厳しいようです。
(Logpushのサイト上で配信することはできます)
HTTP通信時付与する
アプリ側から叩きたい場合はこれが良さそうです。
こちらの投稿が参考になりましたので貼らせていただきます。
http://qiita.com/sushichop/items/ac4ae99b905ce523c2fe
対応プラットフォームが現在iOS,Android,Unityとのことで
使ってみて最高なら他プロジェクトの開発の際も使いたいと思います。
速度とかは今後調査してみます