iBeacon(5) Passbookと連携してみよう

iBeaconはPassbookとの連携もサポートしています。あらかじめUUID, major, minorなどの情報を設定したPassbookが端末にインストールされていると、ロック画面が表示された際にリージョンの範囲に入っているかどうかチェックし、入っていれば該当するPassbookを画面に表示します。

これまでもPassbookには位置情報との連携機能があり、Passbookの設定ファイルであるpass.jsonに緯度や経度の指定をすることで特定の場所でPassbookを表示することができました。

ただ、従来のGPSやWifiベースの位置情報検知はあまり精度がよくないため、iOS7から導入されたiBeaconとの連携により、よき精度が高くきめ細かな位置情報との連携が可能になったといえるでしょう。

iBeacon対応のPassbookの作り方

PassbookをiBeaconに対応させるには、Passbookの定義ファイルであるpass.jsonのトップレベルキーに"beacons"オブジェクトを定義します。beaconsオブジェクトには以下の4つのキーを持つことができます。

  • major
  • minor
  • proximityUUID
  • relevantText

このうち、必須なものはproximityUUIDのみで、他は全部オプションです。major, minorは指定しなければ全ての値にマッチします。relevantTextはPassbook通知がロック画面に表示されるときに一緒に表示される文字列です。beaconsはArrayなので、指定するiBeacon情報が一つだけの場合もこのように配列として定義します。

  "beacons" : [
    {
      "proximityUUID" : "B9407F30-F5F8-466E-AFF9-25556B57FE6D",
      "relevantText"  : "Passbook detects iBeacon!"
    }
  ],

今回は、proximityUUIDとrelevantTextを定義しています。この定義を含んだpass.jsonでPassbookを作成し、あらかじめ端末にインストールしておくと、上のスクリーンショットのようにロック画面を表示した時にPassbookの通知がされることが分かります。