极光推送

最近某个项目时,客户提出要做个智能消息推送,没有大数据做智能分析,只有我这边瞎折腾了哦~
1.推送选择的是第三方的极光推送
2.智能两个字怎么体现呢?这是个问题
不多说,先上代码吧:
//构建推送对象
PushPayload payload = PushPayload.newBuilder()
.setOptions(
Options.newBuilder().setTimeToLive(liveTime).build()) // 消息保留时间
.setOptions(Options.newBuilder()
.setApnsProduction(apns_production).build()) //
.setPlatform(Platform.android_ios()) // 安卓和ios平台
.setAudience(Audience.tag_and(tags)) // Audience.all()推送给所有用户
.setNotification(Notification.newBuilder().setAlert(sTitle)
// 内容统一
.addPlatformNotification(AndroidNotification
.newBuilder()
// 安卓通知
.addExtras(hExtras).setBuilderId(1).build())
.addPlatformNotification(IosNotification.newBuilder()
.setSound("default").addExtras(hExtras).build())
.build())
.build();
//进行消息推送
PushResult result = jpushClient.sendPush(payload);
整个推送步骤就两步:1.构建推送对象 2调用jpush的sdk的推送方法。这个很简单,但是对于jpush的推送给特定用户需要用到tag或者alias,对于这两者的理解还是耗费了一定精力去研究的。
现在就来详细说说这两个东东:
先看官方说明:
我的理解是:在用户注册后的任意时间,客户端可以给用户打上标签,在极光的工具包里面有
public static void setTags(Context context, Set tags, TagAliasCallback callback)
这个接口用于设置标签。当调用该接口在设置好标签后,极光会吧相应的标签信息存储起来(应该会将手机的唯一识别标志和tag绑定起来)。当我们的服务器端推送消息的时候,极光会去遍历哪些用户该接受到推送消息。当我们推送的tag在极光没有存在时,会有 Cannot find user by this audience的异常抛出!


再来说说我这边的智能怎么体现的吧:没有大数据(这个项目的数据也不够大的~_~),那就自己做的简单的数据采集和分析吧。app客户端的注册用户是存放在第三方平台LeanCloud上的,当用户使用客户端查看新闻的时候,在leanCloud上记录用户访问新闻的栏目及其点击次数,标签及其点击次数(没法,系统就只有这两个维度来将数据分类了。。。),然后服务器端拿到这些数据后一顿求平均值,比较啊等等,最后将分析后的tag返回给PushPayload 对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值