iOS ≥ 12 でユーザーの「設定」に「APP通知設定ページ」ショートカットを追加する (Swift)
システムで通知をオフにする以外に、ユーザーには他の選択肢もあります。
前の3つの記事に続いて:
私たちは引き続きプッシュ通知の改善に取り組みます。既存の技術でも新たに公開された機能でも、積極的に試してみましょう!
今回は何?
iOS ≥ 12では、ユーザーの「設定」にあなたのAPP通知設定ページへのショートカットを追加できます。これにより、ユーザーは通知を調整したいときに他の選択肢ができ、「システム側」から直接オフにするのではなく、「APP内」にジャンプできます。まずは画像をご覧ください:

「設定」->「APP」->「通知」->「APP内で設定」
また、ユーザーが通知を受け取った際に、3D Touchで設定を「オフ」にする場合、「APP内で設定」という選択肢が追加されます。

「通知」->「3D Touch」->「…」->「オフにする…」->「APP内で設定」
どうやって実装する?
この部分の実装は非常に簡単で、最初のステップとして通知許可を要求する際に .providesAppNotificationSettings 権限を追加で要求するだけです。
//appDelegate.swift didFinishLaunchingWithOptions または....
if #available(iOS 12.0, *) {
let center = UNUserNotificationCenter.current()
let permissiones:UNAuthorizationOptions = [.badge, .alert, .sound, .provisional,.providesAppNotificationSettings]
center.requestAuthorization(options: permissiones) { (granted, error) in
}
}

ユーザーに通知の許可を求めた後、通知がオンの場合は下にオプションが表示されます(ユーザーが許可または不許可を選んだかに関係なく)。
第二歩:
2番目で最後のステップです。appDelegate に UNUserNotificationCenterDelegate を適用し、userNotificationCenter(_ center: UNUserNotificationCenter, openSettingsFor notification: UNNotification?) メソッドを実装するだけです!
//appDelegate.swift
import UserNotifications
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self
}
return true
}
//その他の部分は省略...
}
extension AppDelegate: UNUserNotificationCenterDelegate {
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, openSettingsFor notification: UNNotification?) {
//設定画面への遷移処理を記述してください..
//例:
//let VC = SettingViewController();
//self.window?.rootViewController.present(alertController, animated: true)
}
}
-
AppdelegateのdidFinishLaunchingWithOptionsでデリゲートを実装する
-
Appdelegateがデリゲートに準拠し、メソッドを実装する
完成!前の記事と比べて、この機能の実装は非常に簡単です 🏆
まとめ
この機能は、前回の記事で紹介した、ユーザーの許可をまだ取らずに、干渉が少ないサイレント通知を送って様子を見る方法に少し似ています!
これは開発者とユーザーの間に新しい橋を架けるものです。以前はアプリがうるさいと、設定画面に直接入り、すべての通知を無情にオフにしていました。しかし、これでは開発者にとって、良い通知も悪い通知も、有用な通知もすべてユーザーに届かなくなり、ユーザーも重要なメッセージや限定オファーを見逃す可能性があります。
この機能により、ユーザーは通知をオフにする際にアプリ内で通知設定を調整する選択肢ができ、開発者は通知項目を細かく分類して、ユーザーが受け取りたい通知の種類を選べるようになります。

結婚吧APP の場合、ユーザーがコラム通知を煩わしく感じたら個別にオフにできますが、重要なシステムメッセージの通知は受け取り続けることができます。
p.s 個別通知をオフにする機能はもともと当アプリにありますが、iOS 12以降の新しい通知機能と組み合わせることで、より良い効果とユーザー体験の向上が期待できます

Post MediumからZMediumToMarkdownによって変換。



コメント