您能否以编程方式在应用程序中允许推送通知?
Can you allow push notifications in the app programmatically?
我在我的应用程序中使用推送通知,正如预期的那样,用户会看到一个对话框,要求在应用程序启动时允许推送通知。我的应用程序的逻辑取决于接收推送通知,如果用户错误地不允许推送通知或不知道应用程序如何工作,应用程序将无法正常工作。有没有办法以编程方式在应用程序中允许推送通知,即使用户不允许?谢谢!
没有。如果用户说你不能向他们发送推送通知,你就不能向他们发送推送通知。应用程序不会忽略用户的选择。
但是,如果您要发送静默 推送通知——那些已传送到您的应用程序但不显示给用户的通知——您不需要获得许可。如果这适合您的需要,那很好,但是您不能未经许可就进行 user-visible 推送。
不幸的是你不能这样做 this.Before iOS 8 你可以检测 APNS 状态使用
UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
或在iOS 8:
之后
UIRemoteNotificationType enableType = [[UIApplication sharedApplication] currentUserNotificationSettings];
或Swift:
let remoteState = UIApplication.sharedApplication().currentUserNotificationSettings()
您可以在用户关闭 APNS 或启动 App 时提示用户。例如:您关闭了 APNS,您将丢失一些重要的 message.Please 进入设置 -> 通知 -> App 以启用 APNS
或者您可以在 iOS8 :
之后跳转到您的应用程序页面
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
if (canOpenSettings) {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}}
我在我的应用程序中使用推送通知,正如预期的那样,用户会看到一个对话框,要求在应用程序启动时允许推送通知。我的应用程序的逻辑取决于接收推送通知,如果用户错误地不允许推送通知或不知道应用程序如何工作,应用程序将无法正常工作。有没有办法以编程方式在应用程序中允许推送通知,即使用户不允许?谢谢!
没有。如果用户说你不能向他们发送推送通知,你就不能向他们发送推送通知。应用程序不会忽略用户的选择。
但是,如果您要发送静默 推送通知——那些已传送到您的应用程序但不显示给用户的通知——您不需要获得许可。如果这适合您的需要,那很好,但是您不能未经许可就进行 user-visible 推送。
不幸的是你不能这样做 this.Before iOS 8 你可以检测 APNS 状态使用
UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
或在iOS 8:
之后UIRemoteNotificationType enableType = [[UIApplication sharedApplication] currentUserNotificationSettings];
或Swift:
let remoteState = UIApplication.sharedApplication().currentUserNotificationSettings()
您可以在用户关闭 APNS 或启动 App 时提示用户。例如:您关闭了 APNS,您将丢失一些重要的 message.Please 进入设置 -> 通知 -> App 以启用 APNS
或者您可以在 iOS8 :
之后跳转到您的应用程序页面if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
BOOL canOpenSettings = (&UIApplicationOpenSettingsURLString != NULL);
if (canOpenSettings) {
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
}}