オプトインダイアログ
iOSではプッシュ通知によるお知らせ配信を行う場合、および位置情報を利用したお知らせ配信を行う場合のそれぞれにおいて、必ず エンドユーザーに利用許諾を行う必要があります。
これまでは -[PopinfoReceiver loadSettings] をコールしたタイミングで許諾処理が行われていましたが、 SDK バージョン 6.1.0 からは任意のタイミングで自動的に許諾処理を発生させることができるようになりました。
初回起動時の許諾処理をスキップする
メソッド -[PopinfoReceiver loadSettingsWithOptIn:] に引数 YES を与えてコールすると、初回起動時の許諾処理をスキップすることができます。
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[[PopinfoReceiver sharedReceiver] loadSettingsWithSkipOptIn:YES]
// ...
}
func applicationDidBecomeActive(_ application: UIApplication) {
PopinfoReceiver.shared.loadSettings(skipOptIn: true)
// ...
}
Warning
初回起動時の許諾処理をスキップした場合、許諾処理を発生させるまでの間は プッシュ通知と位置情報関連機能が利用できません 。
プッシュ通知許諾を発生させる
プッシュ通知許諾を発生させるには、任意のタイミングで -[PopinfoReceiver requestPushNotificationAuthorizationWithCompletion:] をコールします。
エンドユーザーによる許諾結果やエラーは completion handler の中で取得することができます。
下記はプッシュ通知許諾の実装例です。
[[PopinfoReceiver sharedReceiver] requestPushNotificationAuthorizationWithCompletion:^(BOOL granted, NSError *error) {
// 許諾処理後の任意の処理
}];
PopinfoReceiver.shared.requestPushNotificationAuthorization { granted, error in
// 許諾処理後の任意の処理
}
位置情報利用許諾を発生させる
位置情報利用許諾を発生させるには、任意のタイミングで -[PopinfoReceiver requestLocationAuthorization] をコールします。
エンドユーザーによる許諾結果は、デリゲートメソッド popinfoReceiver:detectedNewLocationAuthorizationStatus: に通知されます。
下記は位置情報利用許諾の実装例です。
- (void)applicationDidBecomeActive:(UIApplication *)application {
//...
[[PopinfoReceiver sharedReceiver] requestLocationAuthorization];
//...
}
func applicationDidBecomeActive(_ application: UIApplication) {
//...
PopinfoReceiver.shared.requestLocationAuthorization()
//...
}
エンドユーザーによる許諾結果を取得したい場合は、 PopinfoReceiverDelegate プロトコルに準拠したクラスにおいて、以下のように実装します。
- (void)popinfoReceiver:(PopinfoReceiver *_Nonnull)popinfoReceiver detectedNewLocationAuthorizationStatus:(CLAuthorizationStatus)status {
// 許諾処理後の任意の処理
}
func popinfoReceiver(_ popinfoReceiver: PopinfoReceiver, detectedNewLocationAuthorizationStatus status: CLAuthorizationStatus) {
// 許諾処理後の任意の処理
}