ios10百度推送收不到

百度推送的那些坑
首先先代码
第一步

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions //在这个方法中写
 // iOS10 下需要使用新的 API
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0) {
#ifdef NSFoundationVersionNumber_iOS_9_x_Max
        UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
        
        [center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert + UNAuthorizationOptionSound + UNAuthorizationOptionBadge)
                              completionHandler:^(BOOL granted, NSError * _Nullable error) {
                                  // Enable or disable features based on authorization.
                                  if (granted) {
                                      [application registerForRemoteNotifications];
                                  }
                              }];
#endif
    }
    else
    {
        UIUserNotificationType myTypes = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
        
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:myTypes categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
    }
第二步
// 注册推送成功后调用该方法
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    
    [BPush registerDeviceToken:deviceToken];
    [BPush bindChannelWithCompleteHandler:^(id result, NSError *error)
    {
        NSString *deviceTokenString = [[[[deviceToken description] stringByReplacingOccurrencesOfString:@"<"withString:@""] stringByReplacingOccurrencesOfString:@">" withString:@""]
                                       stringByReplacingOccurrencesOfString:@" " withString:@""];
        NSString *myChannel_id = [BPush getChannelId];
        [[NSUserDefaults standardUserDefaults] setObject:myChannel_id forKey:@"myChannel"];
        [[NSUserDefaults standardUserDefaults] setObject:deviceTokenString forKey:@"deviceToken"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        [DeviceInfoService requestConfig];
    }];
}
// 注册推送失败
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
    
}
ios10之前用
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    [BPush handleNotification:userInfo];
    if (application.applicationState == UIApplicationStateActive || application.applicationState == UIApplicationStateBackground)
    {
        [[MessageService sharedMessageService] requestRecentMsgList];
    }
    else
    {
        [self pushDic:userInfo[@"jm"]];
    }
}
ios10之后
// 此方法是 用户点击了通知,应用在前台 或者开启后台并且应用在后台 时调起
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    completionHandler(UIBackgroundFetchResultNewData);
    // 应用在前台,不跳转页面,让用户选择。
    if (application.applicationState == UIApplicationStateActive)
    {
        [[MessageService sharedMessageService] requestRecentMsgList];
    }
    // 应用在后台。当后台设置aps字段里的 content-available 值为 1 并开启远程通知激活应用的选项
    if (application.applicationState == UIApplicationStateBackground)
    {
        // 此处可以选择激活应用提前下载邮件图片等内容。
        isBackGroundActivateApplication = YES;
        [[MessageService sharedMessageService] requestRecentMsgList];
    }
    
    //杀死状态下,直接跳转到跳转页面。
    if (application.applicationState == UIApplicationStateInactive && !isBackGroundActivateApplication)
    {
        [self pushDic:userInfo[@"jm"]];
    }
    
}

当然除了这些程序里面还有一些需要配置的也是必须的


EDCBE7FD-F688-4B85-9D8C-A44D38F171EF.png
38CFB325-8714-4B9B-9292-3F2D15C5E3A6.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,008评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • 写作原因:网上看了很多推送文章都没有完美的解答我的疑惑;主要有以下两点,1:推送来了我点击应用图标进入应用怎么取到...
    Thebloodelves阅读 4,545评论 26 71
  • 有一种爱叫放手;有一种爱叫陪伴;有一种爱叫等待;有一种爱叫母爱.....耳熟能详的还有,有一种爱叫父爱、奶奶的爱、...
    半夏拾光阅读 2,233评论 1 3
  • 乞丐不一定会妒忌百万富翁,但可能会妒忌收入更高的乞丐。没有更高的视野,你会纠结于现在的圈子;有了更高的视野,你会把...
    盏茶轻茗阅读 229评论 0 1