MobPush 安卓推送消息数据解析推荐实现

MobPush 推送消息解析需要主要类型分为TCP消息与厂商消息,TCP消息:MobPush 应用在线默认走MobTech自己创建的TCP通道,称为 TCP消息。厂商消息:应用结束进程状态推送需走厂商通道(华米OV魅通道)。因此推送消息解析主要针对这俩种消息进行处理。推荐以下两种解析方式。更多操作详情可参考官网文档

统一通过intent解析(推荐)

推送消息可以统一通过解析intent处理,需要注意,由于安卓系统问题,需要消息落地页Activity的启动模式为SingleTask或者SingleTop,否则有可能落地页的onCreate和OnNewIntent无法触发,解析厂商消息失败,可用透明Activity作为落地页,再根据参数进行跳转等其他逻辑。解析示例:

protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);
     // 可通过Mob提供的解析方法,根据解析参数,判断消息是厂商消息还是tcp消息,需要分别处理,打印参数示例参考3,4。
     JSONArray jsonA = MobPushUtils.parseMainPluginPushIntent(getIntent());
     System.out.println("-------------jsonSchemejsonA 打印查看:"+jsonA )
     JSONArray var =  MobPushUtils.parseSchemePluginPushIntent(getIntent());
     System.out.println("-------------jsonSchemevar打印查看:"+var)
}
protected void onNewIntent(Intent intent) {

      // 可通过MobTech提供的解析方法,根据解析参数,判断消息是厂商消息还是tcp消息,需要分别处理,打印示例参考3,4。
      super.onNewIntent(intent);
      setIntent(intent);
      JSONArray jsonA = MobPushUtils.parseMainPluginPushIntent(getIntent());
      System.out.println("-------------jsonSchemejsonA 打印查看:"+jsonA )
      JSONArray var =  MobPushUtils.parseSchemePluginPushIntent(getIntent());
      System.out.println("-------------jsonSchemevar打印查看:"+var)
}
区分处理: TCP消息通过MobTech回调处理,厂商消息解析Intent处理

MobPush TCP消息均可通过回调处理如下:


MobPushReceiver mobPushReceiver = new MobPushReceiver() {

        @Override
        public void onCustomMessageReceive(Context context, MobPushCustomMessage message) {
            //接收到自定义消息(透传消息)
            message.getMessageId();//获取任务ID
            message.getContent();//获取推送内容
        }

        @Override
        public void onNotifyMessageReceive(Context context, MobPushNotifyMessage message) {
            //接收到通知消息
            message.getMobNotifyId();//获取消息ID
            message.getMessageId();//获取任务ID
            message.getTitle();//获取推送标题
            message.getContent();//获取推送内容
        }

        @Override
        public void onNotifyMessageOpenedReceive(Context context, MobPushNotifyMessage message) {
            //通知被点击事件
            message.getMobNotifyId();//获取消息ID
            message.getMessageId();//获取任务ID
            message.getTitle();//获取推送标题
            message.getContent();//获取推送内容
        }

        @Override
        public void onTagsCallback(Context context, String[] tags, int operation, int errorCode) {
            //标签操作回调
            //tags: RegistrationId已添加的标签
            //operation: 0获取标签 1设置标签 2删除标签
            //errorCode: 0操作成功 非0操作失败
        }

        @Override
        public void onAliasCallback(Context context, String alias, int operation, int errorCode) {
            //别名操作回调
            //alias: RegistrationId对应的别名
            //operation: 0获取别名 1设置别名 2删除别名
            //errorCode: 0操作成功 非0操作失败
        }

    };

厂商消息必须解析intent通过onCreate 或onNewIntent

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        // 可通过Mob提供的解析方法,根据解析参数,判断消息是厂商消息还是tcp消息,需要分别处理,打印示例参考3,
        JSONArray jsonA = MobPushUtils.parseMainPluginPushIntent(getIntent());
        System.out.println("-------------jsonSchemejsonA 打印查看:"+jsonA )
        JSONArray var =  MobPushUtils.parseSchemePluginPushIntent(getIntent());
        System.out.println("-------------jsonSchemevar打印查看:"+var)
}
TCP消息解析参数示例
[
  {
   "from_tcp":true
  },
  {
   "msg":"MobPushNotifyMessage{style=0, title='111', content='111', styleContent='null', inboxStyleContent=null, extrasMap={pushData={\"iskey\":\"https://www.mob.com\"}, iskey=https://www.mob.com, channel=mobpush, id=4bp4tw9talcex9jf28}, messageId='4bp4tw9talcex9jf28', timestamp=1647939368936, voice=true, shake=true, light=false, channel=0, notifySound='null', dropType=0, dropId='null', mobNotifyId='1257662669', offlineFlag=0, isGuardMsg=false, icon='null', image='null', androidBadgeType=0, androidBadge=0, androidChannelId='MobPush', importance='3', notificationChannelName='消息通知', isLockscreenVisible='false', allowBubbles='false'}"
  },
  {
   "channel":"mobpush"
  }
]
厂商解析参数示例,可直接解析附加参数
[
  {
   "from_tcp":“false”
  },
  {
   "id":"4bp4tw9taldddxxreo"
  },
  {
   "channel":"huawei"
   },
  {
   "iskey":"https://www.mob.com"
  }
]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MobTech袤博科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值