通知に関する新機能

2018年9月18日に iOS 12 が正式リリースされました。数多くの方々が iOS 12 を利用していると思いますが、通知に関する様々な新機能が追加されましたのでまとめてみたいと思います。

WWDC 2018 では、以下のような新機能が紹介されています。

  • 通知のグループ化
  • Notification Content Extension の拡張
  • 通知管理機能
  • 仮許可
  • 重大な通知

イメージ:WWDC のスライド

今回はその中から、新機能「仮許可」を取り上げたいと思います。

仮許可とは?

仮許可( Provisional authorization )とは、簡単に言うと ユーザが明示的に許可しなくても通知を配信することができる という機能です。

皆さんもご存知の通り、 iOS の通知は、ユーザが明示的に許可することで初めてデバイスに通知が配信されます。ユーザからしてみれば、実際に通知を受け取る前に「許可 or 拒否」の判断する必要があります。

イメージ:許可ダイアログ

そのため開発者としては、少しでも多くのユーザに通知を許可してもらえるよう チュートリアルなどであらかじめ通知の説明を行った上で、許可ダイアログを表示する などの工夫を凝らしているアプリもあります。

今回の 仮許可( Provisional authorization ) も、多くのユーザに通知を許可してもらうための機能であり、 とにかく一度ユーザに通知を受信してもらい、その上でユーザに 許可 or 拒否 を判断してもらう というものになります。

ユーザからしてみれば、どのような通知が来るのかを実際に見た上で判断することができるため、本当に必要な通知のみを受信することができることになります。

実装方法

通知の許可を得る際は、以下のような実装を AppDelgate などで行うと思います。

let center = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: [.alert, .sound]) { granted, error in
    // ユーザの許可状態の確認など.
}

仮許可を行うには、上記の箇所を以下のように修正します。具体的には、 options に渡す配列に .provisional を追加するだけです。簡単ですね!

let center = UNUserNotificationCenter.current()
center.delegate = self
// オプションに .provisional を追加.
center.requestAuthorization(options: [.alert, .sound, .provisional]) { granted, error in
    // ユーザの許可状態の確認など.
}

こうすることで、おなじみの「許可を求めるダイアログ」が表示されなくなり、通知がユーザに配信されるようになります。

仮許可のユーザに配信される通知

仮許可状態のユーザには、以下のような通知が通知センターに配信されます。

イメージ:仮許可のダイアログ

このように、ユーザは実際の通知を受けた上で、許可 or 拒否 の選択を行うことができることになります。

他にも、仮許可状態のユーザに配信される通知は「目立たない形で配信」という状態になるという特徴があります。

  • 通知センターに配信される
  • サウンドはならない
  • ヘッドアップバナーは表示されない

イメージ:設定画面

まとめ

多くの通知が氾濫する中、通知の質を見極めて 許可 or 拒否 が出来るようになったということで、開発者側もユーザ側も、それなりにメリットのある機能なのではないでしょうか。開発者からしてみれば「通知はとりあえず OFF にする」というユーザに対してリーチすることもできますし、ユーザからしてみれば本当に必要な通知かどうかを判断できると思います。

開発者としてはより多くの人に通知を受けてもらえるよう、通知の質の向上も忘れないようにしつつ、この仮許可を検討してみてはいかがでしょうか!