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" }]