第一步的配置
//注册APNs成功并上报DeviceToken
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
/// Required - 注册 DeviceToken
NSLog(@"%@", [NSString stringWithFormat:@"Device Token: %@", deviceToken]);
__autoreleasing NSMutableSet *tags = [NSMutableSet set];
//这里就是向极光注册别名,别名是唯一的, 可以用用户名,或者电话号码等 .到时候你们后台 根据alias找到相应的用户进行推送. tags 可以传空
// 在登录成功之后也要注册一次 [JPUSHService setTags:tags alias:USER_USER fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) 这个方法
[JPUSHService setTags:tags alias:USER_USER fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
if(iResCode == 0){
NSLog(@"registrationID获取成功:%@",iAlias);
}
else{
NSLog(@"registrationID获取失败,code:%d",iResCode);
}
}];
//极光注册
[JPUSHService registerDeviceToken:deviceToken];
// 坑在这里,如果同时集成了环信和极光,要去环信的 appdelegate 里将他的注册移动到 appdelegate 里,和极光一起注册
//环信注册
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[EMClient sharedClient] bindDeviceToken:deviceToken];
});
}
第二步的配置
//完成以上步骤,就可以接受到后台给你的推送了,
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {
//这里就可以得到推送的数据了
NSDictionary * userInfo = response.notification.request.content.userInfo;
if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
// 这里就可以对 ui 进行操作,用户点击了推送,跳转到哪一个页面就在这里进行
//进行 push 模态跳转页面.
}else{
//本地通知
}
completionHandler(); // 系统要求执行这个方法
}
网友评论