ARTICLE

iPhoneの新機能、バックグラウンドでのNDEF読み込みをためしてみる

こんにちは、SSL須釡です。
2018年9月に発売されたiPhoneXS世代では、NFCまわりの機能に次のようなアップデートがありました。

- バックグラウンドでのNDEFの読み込み
- 予備電力付きエクスプレスカード

今回の記事では、バックグラウンドでのNDEFの読み込みについて詳しくみていきたいと思います。

NDEFとは何か?

まずNFCとNDEFについて軽くおさらいをしておきましょう。FeliCaやTypeA,Bなどの異なる非接触通信の仕組みがいくつかありますが、NFCフォーラムという団体がこれらを共通に扱うための仕様を策定しています。その中にNFCタグとの通信仕様も含まれており、ここで扱う共通データフォーマットがNDEF(NFC Data Exchange Format)と呼ばれるものです。
つまり、NFCタグにNDEF形式でデータを書いておくと、NFCリーダーで読み込めるというわけです。

参考
https://www.sony.co.jp/Products/felica/NFC/forum.html

実際に使ってみる

では、実際にこの新機能のはたらきを確認してみたいと思います。
iOSはCoreNFCとしてNFCの機能を提供しており、現在のところNFCタグからNDEFフォーマットのデータを読みだす機能だけが提供されています。iPhoneX以前のiPhoneではアプリケーション起動中に、システムのダイアログを出して読み込むということだけが可能です。

fig1.jpg

CoreNFCのAPIでこのようなシステムダイアログが表示され、読み込みの待ち受け状態になります。

fig2.jpg

NFCタグにタッチするとNDEF情報が読み込まれ、このような画面が表示され、アプリに処理が戻ります。

img2_3.jpg

サンプルアプリでNDEFの情報を表示してみた画面です。

iPhoneXS世代からはアプリ起動中でなくても、URLタイプのタグを読み込むことができるようになります。NDEFにはデータタイプを表すフィールドがあり、URLの他にもプレーンテキストなども入れておけるのですが、この機能はURLのみが対象です。URLがセットされたタグをiPhoneXSにかざすと通知ウインドウが現れ、URLを開くかどうかが尋ねられます。
UniversalLinkという仕組みでサイトと自分のアプリを紐づけておくと、Safariではなく直接アプリを開くことができます。

fig4.jpg

URLが設定されたタグにタッチすると、このような通知でURLをSafariで開くかどうか尋ねられます。

fig5.jpg

通知からURLを開くとSafariが起動しwebサイトが表示されます。UniversalLinkという仕組みでサイトにアプリIDを紐づけておくと、アプリストアへの誘導も表示されます。

img2_6.jpg

さらにアプリがインストール済みの場合は、Safariではなくアプリで直接開くことになります。

img2_7.jpg

通知からアプリを開くと、アプリにはNFCタグのURLが渡されます。アプリ側ではタグのURLに応じた処理をすることができます。

決まったURLを開くだけなので、セキュリティなどは何もありません。サイトやアプリを開くためのショートカットとして使うというのがメインの使い方になります。対応端末は少ないですが、検索やQRコードよりは手間が少なくなるのがメリットと言えます。

今後のさらなる展開に注目

今回の記事では、iPhoneXS世代でのバックグラウンドでのNDEFの読み込み機能を見てきました。iOSではまだreader/writerの機能や、P2PのAPIは公開されていません。今後、使い勝手やプライバシー、セキュリティを考慮しながら、どのような形で解放されていくのか注目していきたいと思います。

本リリースやSmart Sound Labに関するお問い合わせは下記、またはホームページの「CONTACTフォーム」からお願いいたします。

Smart Sound Lab
(スマートサウンドラボ)

URL: https://smartsoundlab.com
所長:安田 寛 Hiroshi Yasuda

こちらの記事もどうぞ: