版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337816
项目最近增加了新功能:积分商城。用户可以通过使用自己的积分进行购物。
在新功能中有一个通知中心,显示后台系统发送给用户的一些消息:如购物成功、快递正在派送中、签收成功等,就像淘宝、京东中的消息那样。后台系统要发送推送给用户,这个用户是唯一的,不能像广播那样地发送推送。我们公司中的项目用的推送是友盟推送,友盟推送中有一个添加别名,可以利用添加唯一的别名发送消息给指定的用户。
在给指定用户发送推送消息的时候需在友盟后台选中“特定用户”这个选项,接着选中类型和一个特定用户的唯一标识(上面的类型是自己在代码中添加的,45也是一个用户的ID)。
友盟开发文档中给出了添加别名的代码,读者可以参考友盟给出的开发文档(http://dev.umeng.com/push/ios/integration)。本项目中在用户登录成功后(手机登陆、微信登陆)和注册成功后将后台生成的用户唯一标识用户ID作为了别名。代码:
NSDictionary * data = responseObject@"data";
NSString * userid = data@"userid";
[UMessage addAlias:userid type:@"ALIAS_TYPE.DIPAI" response:^(id _Nonnull responseObject, NSError * _Nonnull error) {
// NSLog(@"---responseObject---%@", responseObject);
// NSLog(@"---error----%@", error);
}];
程序运行成功后,自己设置的type可能需要几分钟才能在友盟后台生成,不要着急。
在用户退出登陆后就不能再接收到我们后台发送给特定用户的推送消息了,这时需要我们移除别名,记住是在用户退出登陆的时候进行移除。代码:
NSDictionary * xcDic = defaults objectForKey:WXUser;
NSString * xcDic = data@"userid";
[UMessage removeAlias:userid type:@"ALIAS_TYPE.DIPAI" response:^(id _Nonnull responseObject, NSError * _Nonnull error) {
}];
本项目中在用户登录、注册成功后将后台返回的用户数据包括用户ID以字典的形势进行了存储,所以在退出登录的时候能够获取到用户的ID。
如果手动在友盟后台给某些特定用户发送特定的推送消息确实又些麻烦,不过我们的后台也做了一些处理,推动消息会先经过我们的后台然后利用友盟推送进行特定用户特定消息的推送。
好了,这就是本次博客的主要内容,谢谢阅读!