• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

主题订阅推送助力双十一预约抢购

android 搞代码 4年前 (2022-03-02) 22次浏览 已收录 0个评论
文章目录[隐藏]

1.前言

主题订阅推送是指给订阅了不同主题的用户推送不同的音讯,比方摄影、静止、美食等。为了进步用户沉闷以及留存,咱们心愿依据用户的关注主题,推送不同的音讯,比方,关注了静止的用户,咱们推送静止相干的资讯,做到推送因人而异,推送用户真正感兴趣的音讯。

2.业务背景介绍

双十一各家电商平台都推出了各种预约抢购流动(如下图所示),商家借助推送可能及时的把优惠信息送到用户的手机里,但不是所有的用户都对商品感兴趣,铺天盖地的推送反而会让用户产生恶感,主题推送让用户本人抉择感兴趣的商品,做到精准及时的推送。

3.整体流程

4.集成关键步骤阐明和代码

(1)集成push sdk

Push sdk的集成文档上有具体的阐明这里不做开展,详情能够参考https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides-V5/service-introduction-0000001050040060-V5

(2)配置主动初始化token

配置主动初始化后,每次关上利用token就会从onNewToken回调返回,主题推送不依赖token来进行推送,但端测依然要首先获取token。

<code class="java"><meta-data
    android:name="push_kit_auto_init_enabled"
    android:value="true"/></code>

(3)把商品的id作为topic

用户点击预约抢购时,调用subscribe办法订阅主题

<code class="java">/**
  * to subscribe to topics in asynchronous mode.
  */
 private void addTopic(String topic) {
     try {
         HmsMessaging.getInstance(MainActivity2.this)
                 .subscribe(topic)
                 .addOnCompleteListener(new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(Task<Void> task) {
                         if (task.isSuccessful()) {
                             Log.i(TAG, "subscribe Complete");
                             changToCancelAppointment();
                             isAppointment = true;
 
                             showLog("subscribe successful");
                         } else {
                             isAppointment = false;
                             changeToAppointment();
                             showLog("subscribe failed: ret=" + task.getException().getMessage());
                         }
                     }
                 });
     } catch (Exception e) {
         isAppointment = false;
         changeToAppointment();
         showLog("subscribe failed: exception=" + e.getMessage());
     }
     
 }</code>

(4)服务端调用上行音讯接口
用商品的topic推送音讯,上面用postman来模仿发送音讯推送报文如下:

(5)当一个用户预约了一款手表的预售,他可能就会对雷同价位雷同样式的其余手表有购买需要,咱们能够将这几款手表的预售信息作为一组推送给用户,通过condition组合”condition”: “‘watch123456’ in topics || ‘watch321654’ in topics || ‘watch321684’ in topics” 用户如果订阅了watch123456 watch32165 watch321684这三款手表中的一个,另外两款手表的发售信息也会推送给用户。

(6)当用户勾销预约这款手表的发售时,能够调用unsubscribe办法勾销预订,勾销后就不会再接管这款手表的发售信息

<code class="java"> /**
  * to unsubscribe to topics in asynchronous mode.
  */
 private void deleteTopic(String topic) {
     try {
         HmsMessaging.getInstance(MainActivity2.this)
                 .unsubscribe(topic)
                 .addOnCompleteListener(new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(Task<Void> task) {
                         if (task.isSuccessful()) {
                             showLog("unsubscribe successful");
                             changeToAppointment();
                             isAppointment = false;
                         } else {
                             isAppointment = true;
                             showLog("unsubscribe failed: ret=" + task.getException().getMessage());
                             changToCancelAppointment();
                         }
                     }
                 });
     } catch (Exception e) {
         showLog("unsubscribe failed: exception=" + e.getMessage());
         isAppointment = true;
         changeToAppointment();
     }
 
 }</code>

5.成果展现

6.其余

主题消息传递不限度每个主题的订阅数。然而,Push Kit有如下限度:

(1)一个利用实例不可订阅超过2000个主题。

(2)在EMUI 10.0以上的华为设施要求HMS Core(APK)的版本不低于3.0.0。低于EMUI 10.0的华为设施上要求HMS Core(APK)的版本不低于4.0.3,高版本的HMS Core(APK)补齐了低版本EMUI缺失的性能。

(3)同时进行推送的主题数,不能超过100个。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:主题订阅推送助力双十一预约抢购

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址