初始化
这里就不在说明如何初始化极光推送了,附上极光官方文档极光官方文档。
开发环境和生产环境区别
这里的解释下,我们设置别名就是为了生产环境,可以简单的理解为产品上架,或者打包供用户下载的版本,设置别名则是为了区分每一个用户(会和后台联动)。而开发环境又称测试环境,就是我们Xcode跑在真机上的版本。具体在极光上附上如下截图:
下面我们就代码展示如何设置别名
首先我们在激光初始化完成的基础上设置,apsForProduction为YES
* @abstract 启动SDK
*
* @param launchingOption 启动参数.
* @param appKey 一个JPush 应用必须的,唯一的标识. 请参考 JPush 相关说明文档来获取这个标识.
* @param channel 发布渠道. 可选.
* @param isProduction 是否生产环境. 如果为开发状态,设置为 NO; 如果为生产状态,应改为 YES.
* App 证书环境取决于profile provision的配置,此处建议与证书环境保持一致.
* @param advertisingIdentifier 广告标识符(IDFA) 如果不需要使用IDFA,传nil.
*
* @discussion 提供SDK启动必须的参数, 来启动 SDK.
* 此接口必须在 App 启动时调用, 否则 JPush SDK 将无法正常工作.
*/
+ (void)setupWithOption:(NSDictionary *)launchingOption
appKey:(NSString *)appKey
channel:(NSString *)channel
apsForProduction:(BOOL)isProduction;
在登录成功的时候实现如下代码(设置别名)
//极光推送(登录)user.id为个人id即绑定的别名
/**
设置Alias
@param alias 需要设置的alias
@param completion 响应回调
@param seq 请求序列号
*/
[JPUSHService setAlias:[NSString stringWithFormat:@"DC%@",user.id] completion:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {
NSLog(@"rescode: %ld, \ntags: %@, \nalias: %@\n", (long)iResCode, @"tag" , iAlias);
} seq:0];
在退出登录成功的时候实现如下代码(取消别名)
//极光推送 (退出)
/**
删除alias
@param completion 响应回调
@param seq 请求序列号
*/
[JPUSHService deleteAlias:^(NSInteger iResCode, NSString *iAlias, NSInteger seq) {
NSLog(@"rescode: %ld, \ntags: %@, \nalias: %@\n", (long)iResCode, @"tag" , iAlias);
} seq:0];
注意:退出的时候一定要取消别名,以防用户退出登录的状态下仍接受通知消息。
-
这样极光推送的别名设置就完成了~