第一步的配置
//注冊(cè)APNs成功并上報(bào)DeviceToken
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
/// Required - 注冊(cè) DeviceToken
NSLog(@"%@", [NSString stringWithFormat:@"Device Token: %@", deviceToken]);
__autoreleasing NSMutableSet *tags = [NSMutableSet set];
//這里就是向極光注冊(cè)別名,別名是唯一的, 可以用用戶名,或者電話號(hào)碼等 .到時(shí)候你們后臺(tái) 根據(jù)alias找到相應(yīng)的用戶進(jìn)行推送. tags 可以傳空
// 在登錄成功之后也要注冊(cè)一次 [JPUSHService setTags:tags alias:USER_USER fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) 這個(gè)方法
[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);
}
}];
//極光注冊(cè)
[JPUSHService registerDeviceToken:deviceToken];
// 坑在這里,如果同時(shí)集成了環(huán)信和極光,要去環(huán)信的 appdelegate 里將他的注冊(cè)移動(dòng)到 appdelegate 里,和極光一起注冊(cè)
//環(huán)信注冊(cè)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[[EMClient sharedClient] bindDeviceToken:deviceToken];
});
}
第二步的配置
//完成以上步驟,就可以接受到后臺(tái)給你的推送了,
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {
//這里就可以得到推送的數(shù)據(jù)了
NSDictionary * userInfo = response.notification.request.content.userInfo;
if([response.notification.request.trigger isKindOfClass:[UNPushNotificationTrigger class]]) {
// 這里就可以對(duì) ui 進(jìn)行操作,用戶點(diǎn)擊了推送,跳轉(zhuǎn)到哪一個(gè)頁面就在這里進(jìn)行
//進(jìn)行 push 模態(tài)跳轉(zhuǎn)頁面.
}else{
//本地通知
}
completionHandler(); // 系統(tǒng)要求執(zhí)行這個(gè)方法
}