gpt4 book ai didi

IOS 9 不请求远程通知权限

转载 作者:行者123 更新时间:2023-11-28 19:32:11 25 4
gpt4 key购买 nike

我在尝试请求远程通知权限时遇到问题。

它在 iOS 10 上完美运行,但当我尝试在 iOS 9 设备上运行时,它没有显示任何警报,并且 UIApplication 委托(delegate)方法“application:didRegisterForRemoteNotificationsWithDeviceToken:”未被调用。既不是“失败”的方法。

我只在真实设备上测试,而不是模拟器。我目前用于请求许可的代码如下:

-(void)requestPushPermissions {
NSLog(@"Starting register for remote Notification");
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes: UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0) {
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:UNAuthorizationOptionAlert | UNAuthorizationOptionBadge | UNAuthorizationOptionSound completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
NSLog(@"Got a yes!");
}
else {
NSLog(@"Got a no...");
}
}];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
else {
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}

有人知道吗?

最佳答案

试试这段代码

#import "AppDelegate.h"

#define SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.

[self registerForRemoteNotification];

return YES;
}
- (void)registerForRemoteNotification {
if(SYSTEM_VERSION_GRATERTHAN_OR_EQUALTO(@"10.0")) {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
if( !error ){
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
}
else {
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}

在功能中启用推送通知

关于IOS 9 不请求远程通知权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42715368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com