关于android:MobPush-安卓推送消息数据解析推荐实现

4次阅读

共计 3398 个字符,预计需要花费 9 分钟才能阅读完成。

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