アプリでUILocalNotificationを使用して通知をスケジュールしています。通知は正常に機能し、必要なときに表示されます。私はそれで問題はありません。リモート/プッシュ通知を行っていません。
私が不思議に思ったのは、いくつかのアプリでプッシュ通知に通常表示される有名なアクセス許可ダイアログを見たことがないということです。デバイスをリセットしてアプリを実行しました。それでも、権限ダイアログは表示されませんでした。
アプリがローカル通知のみを使用している場合、このアクセス許可ダイアログは表示されませんか、それとも実際にアプリにこのアクセス許可を要求させるメソッドを実装していませんか?
アプリの起動後にユーザーにこの許可を求める独自のダイアログを実装できることはわかっていますが、特にリモート通知とローカル通知を同じように処理するため、Appleがそれを処理することを望んでいました。設定アプリ。
注:これにはプッシュ通知/リモート通知が含まれます
xcode6をiOS7またはiOS8で使用する場合registerUserNotificationSettingsの場合にテストします。APIは実行時に使用できます。
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
}
おかげで http://corinnekrych.blogspot.ae/2014/07/how-to-support-Push-notification-for.html
はい、iOS8では、ローカル通知には権限が必要です。
ドキュメント for registerUserNotificationSettings:は次のように規定しています
アプリがバックグラウンドでアラートを表示したり、サウンドを再生したり、アイコンにバッジを付けたりした場合は、起動サイクル中にこのメソッドを呼び出して、これらの方法でユーザーにアラートを送信する許可をリクエストする必要があります。通常、このリクエストはアプリがローカルを使用している場合またはプッシュ通知を実行して、アプリに関連する新しい情報をユーザーに警告します。
ローカル通知をスケジュールする前にこのメソッドを呼び出すまたはプッシュ通知サービスに登録することをお勧めします。
ローカル通知にはユーザー権限は必要ないようです。プッシュ通知の[許可]ダイアログが表示されます。ユーザーの許可なしにローカル通知をスケジュール/キャンセルすることができます。
PresentLocalNotificationNowとscheduleLocalNotificationに関するAppleのドキュメントによると、
ローカル通知をスケジュールする前に、registerUserNotificationSettings:メソッドを呼び出して、ユーザーに表示する予定のアラートのタイプをシステムに通知する必要があります。
したがって、このページの他の人がローカル通知にはユーザー権限は必要ないと言っているのかわかりません。
同じトピックに関するこの他のディスカッションをチェックしてください:
それは正解です。ローカル通知にはOS権限は必要ありません。ただし、グッドプラクティスとして、このような場合にアプリケーションからユーザーにオプトアウトオプションを提供することをお勧めします。これは2つの方法でうまく機能します: