喜欢交朋友的加:微信号 dwjluck2013
1.获取别名:在极光这个回调方法里面 得到 registrationID 并存储起来 登录的时候会用,
/** 极光推送 回调 */ - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { /// Required - 注册 DeviceToken [JPUSHService registerDeviceToken:deviceToken]; // 这个block回调获取registrationID 别名 存储起来 在登录界面传给后台 [JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) { if(resCode == 0) { // iOS10获取registrationID放到这里了, 可以存到缓存里, 用来标识用户单独发送推送 NSLog(@"registrationID获取成功:%@",registrationID); // [[[NSUserDefaults standardUserDefaults] setObject:registrationID forKey:@"registrationID"]; // [[NSUserDefaults standardUserDefaults] synchronize];] [UserModel sharedInstanced].jpushRegistrationID = registrationID; } else { NSLog(@"registrationID获取失败,code:%d",resCode); } }]; }
2.极光推送 标签和别名设置(在登录的时候设置)
- (void)loginBtnClick:(UIButton *)sender{ NSLog(@"登录"); // 设置极光推送的标签和别名(标签是一个集合可以包含多个关键词 比如:红的、黄的、绿的)(别名是每个用户唯一的名称可以 根据这个别名给唯一的用户发推送) NSMutableSet *set = [[NSMutableSet alloc] initWithObjects:@"HelpYou_1.0",nil, nil]; // 标签 NSString *registrationIdStr = [UserModel sharedInstanced].jpushRegistrationID; // 别名 [JPUSHService setTags:set alias:registrationIdStr callbackSelector:@selector(tagsAliasCallback:tags:alias:) object:self]; //写后接口的时候 调用后台接口 把registrationIdStr传给后台 } // 极光推送 标签和别名设置成功回调 - (void)tagsAliasCallback:(int)iResCode tags:(NSSet*)tags alias:(NSString*)alias { NSLog(@"rescode: %d, tags: %@, alias: %@ ", iResCode, tags , alias); }
3.退出登录的时候 可以把标签和别名设置为nil 这样推送的时候就得到不推送的消息了
[JPUSHService setTags:nil alias:nil callbackSelector:@selector(tagsAliasCallback:tags:alias:) object:self];
流程总结:别名在delegate.m极光回调方法中得到(如1步骤代码);在登录的时候传给后台,并调用极光的方法给极光;之后的事就是公司后台用这个别名给极光进行推送了(和我们前台就无关了)