Alexのぶろぐ

programming/scala/play!/php/javascript/three.js/unity/xcode5/rails/rubymine メモ用です

play! scala でiosのpush通知を実装する

play! scalaでapnsを通してiosデバイスにpush通知を実装しまする

ということで証明書関係やとりあえずphpで通知するまでの手順は

iOSでプッシュ通知を実装する方法の超詳細まとめ(前編) | Lancork
ここがめっちゃ詳しかったのでここでやりました。


で、どうやってscalaに書き換えるのかというところから。

下準備

先ほどのリンクで取得した

Apple Production IOS Push Services
・Entrust.net Certification Authority (2048)

の二つのファイルを一つのp12ファイルにします

やり方はキーチェーンで2つの項目を選択した状態から右クリックで「2個を
書き出す」でひとつのp12ファイルにすることができます。

中身

んで、build.sbtファイルに

"com.notnoop.apns"%"apns"%"0.1.6"

との記述をする

そしたらあとはもう簡単

プッシュ通知を実装したい箇所で

//さっき作ったファイルのパス
val APNSCertPath = "/path/to/sakki/tukutta/p12/file"
//さっきつくったファイルのパスワード
val APNSCertPassword = "password"
//APNSオブジェクト生成
val service = APNS.newService
      .withCert(APNSCertPath, APNSCertPassword).withSandboxDestination.build
//プッシュ通知内容詳細
val payload = APNS.newPayload.alertBody("pushpushpush!!!doyaaaaaa").badge(1).sound("default").customField("name", "neel").build
//デバイストークン
val token = "<<<<<<<<<<<<<<<<<<<<<<Device Token kaitene>>>>>>>>>>>>>>>>>>>>>>"
val notif = service.push(token, payload)

最後に、APNSのライブラリをちゃんとインポートするのを忘れずに!

import com.notnoop.apns.APNS;
import com.notnoop.apns.ApnsService;

ああとちゃんと依存性のやつをインストールするのも忘れずに!