在iOS 10中未接收推送通知

在iOS 10中未接收推送通知,ios,push-notification,apple-push-notifications,ios10,Ios,Push Notification,Apple Push Notifications,Ios10,我的应用程序在Appstore中。推送通知在iOS 9中运行良好,但在iOS 10中不起作用。我没有收到iOS 10设备的任何推送通知。我已检查服务器中的设备令牌和证书。都是对的。我还检查了设置应用程序中的通知属性。一切都很好。但我没有收到任何通知。我只是关闭和打开我的应用程序的通知。我打开了我的应用程序,检查设备令牌是否正在更改。它已更改并更新到我的服务器。那么我会收到正确的通知。我的设备现在运行良好 我担心这会影响所有用户还是只影响我。任何人找到合适的解决方案,请告诉我 提前感谢需要对使用x

我的应用程序在Appstore中。推送通知在iOS 9中运行良好,但在iOS 10中不起作用。我没有收到iOS 10设备的任何推送通知。我已检查服务器中的设备令牌和证书。都是对的。我还检查了设置应用程序中的通知属性。一切都很好。但我没有收到任何通知。我只是关闭和打开我的应用程序的通知。我打开了我的应用程序,检查设备令牌是否正在更改。它已更改并更新到我的服务器。那么我会收到正确的通知。我的设备现在运行良好

我担心这会影响所有用户还是只影响我。任何人找到合适的解决方案,请告诉我


提前感谢

需要对使用xCode 8 GM的iOS 10进行一些更改吗 您需要实现UserNotifications.framework及其委托方法来获得推送通知

我已使用新的UserNotifications.framework解决了我的问题。
请点击此链接:

我们需要更改iOS 10的一些代码

Appdelegate.h

#import <UserNotifications/UserNotifications.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate> 
@end
注册通知

- (void)registerForRemoteNotifications {
    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 {
        // Code for old versions
    }
}
韩德尔委托法

//foreground app.
-(void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler{
    NSLog(@"User Info : %@",notification.request.content.userInfo);
    completionHandler(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge);
}

-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{
    NSLog(@"User Info : %@",response.notification.request.content.userInfo);
    completionHandler();
}

在iOS 10上,必须添加推送通知权限,因此如果您在功能中“修复问题”,问题将自动解决。

用户通知”在iOS 10中不是强制性的。“UIUserNotificationSettings”在iOS10中仍然有效

[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
如果您有以下代码,它应该在iOS10中工作

[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
但是,如果您使用Xcode8及以上版本进行构建,请确保您的权益中有以下条目。在“功能”中启用“推送通知”后,将自动添加此条目

aps环境 发展 在发行版发行版本中,这将自动更改为 跟随

<key>aps-environment</key>
<string>production</string>
aps环境 生产
尝试此类型代码:我检查了以前的解决方案。但我的应用程序没有iOS 10 SDK。那么它对iOS 10的影响是什么呢?您正在下载或升级您的xcode 8可能是升级xcode。可能的副本可能面临相同的问题。因此,我已使用xCode 8 GM for iOS 10将我的应用程序重新提交到Appstore。@AshishShah无需实现
UserNotification
。仍然可以使用
UIUserNotificationSettings
完成此操作。您只需要启用推送通知功能,这将在您的项目中生成一个
.entity
文件。我同意@RaNot的必要性,我们仍然可以在iOS 10中使用相同的
UIUserNotification
。唯一的区别是在功能中添加推送通知权限
<key>aps-environment</key>
<string>production</string>