iOS 12以上で「APP通知設定ページ」へのショートカットを設定アプリに追加|Swift活用法
iOS 12以上のユーザー向けに、設定アプリ内で通知をシステムからオフにする以外の選択肢を提供。Swiftで簡単に「APP通知設定ページ」へのショートカットを実装し、ユーザー体験を向上させる方法を解説。
本記事は AI による翻訳をもとに作成されています。表現が不自然な箇所がありましたら、ぜひコメントでお知らせください。
記事一覧
iOS ≥ 12 ユーザーの「設定」に「APP通知設定ページ」ショートカットを追加 (Swift)
システムで通知をオフにする以外に、ユーザーには他の選択肢もあります。
直前の3つの記事に続いて:
私たちは引き続きプッシュ通知の改善に取り組みます。既存の技術でも新しく提供された機能でも、どんどん試してみましょう!
今回は何?
iOS ≥ 12では、ユーザーの「設定」にあなたのAPP通知設定ページへのショートカットを追加できます。これにより、ユーザーが通知を調整したいときに、他の選択肢ができ、「システム側」から直接オフにするのではなく、「APP内」に遷移できます。まずは図をご覧ください:
「設定」->「APP」->「通知」->「APP内で設定」
また、ユーザーが通知を受け取った際に3D Touchで設定を「オフ」にする場合、「APP内で設定」という選択肢が追加され、ユーザーが選べるようになります。
「通知」->「3D Touch」->「…」->「オフにする…」->「アプリ内で設定」
どうやって実装する?
この部分の実装は非常に簡単で、最初のステップではプッシュ通知の権限を要求するときに .providesAppNotificationSettings 権限を追加で要求するだけです。
1
2
3
4
5
6
7
8
//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
}
}
ユーザーに通知の許可を求めた後、通知がオンの場合は下にオプションが表示されます(ユーザーが許可または不許可を選んだかに関係なく)。
第二歩:
第二ステップであり、最後のステップです;appDelegate に UNUserNotificationCenterDelegate を適用し、userNotificationCenter( _ center: UNUserNotificationCenter, openSettingsFor notification: UNNotification?) メソッドを実装するだけです!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//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を使って変換しました。
本記事は Medium にて初公開されました(こちらからオリジナル版を確認)。ZMediumToMarkdown による自動変換・同期技術を使用しています。




