在12月份某一天,后台接口突然反馈说推送的id没有上传,通过代码排查发现以下方法不执行了。
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
-(void)application:(UIApplication*)application didRegisterUserNotificationSettings:(UIUserNotificationSettings*)notificationSettings。
解决方法如下:
在获取系统权限的地方,添加一段代码,手动去注册通知权限,修改如下:
UNUserNotificationCenter* center = [UNUserNotificationCentercurrentNotificationCenter];
[centerrequestAuthorizationWithOptions:(UNAuthorizationOptionAlert+UNAuthorizationOptionSound+UNAuthorizationOptionBadge)
completionHandler:^(BOOLgranted,NSError*_Nullableerror)
{
if(granted)
{
重点是这句话,在用户允许通知以后,手动执行regist方法。
[[UIApplicationsharedApplication]registerForRemoteNotifications];
}
}];
这些都是在项目开发过程中遇到过的问题,希望和各位大神相互交流,谢谢!