MobPush 厂商通道SDK集成指南
创始人
2024-03-05 03:15:23
0

开发工具:Android Studio

集成方式:Gradle在线集成

安卓版本支持:minSdkVersion 19

集成准备

MobPush快速集成

在使用厂商通道之前,请确保您已申请MobTech开发者账号并已按照MobPush快速集成文档进行集成,本篇文档将默认您已完成该步骤

Mob开发者后台配置

注册MobTech账号后,需要在MobTech后台进行相关信息的配置,详情可以点击查看具体配置信息

添加配置

在项目Gradle文件中注册MobSDK

buildscript {repositories {// 添加MobSDK Maven地址maven {url "https://mvn.mob.com/android"}// 配置HMS Core SDK的Maven仓地址。maven {url 'https://developer.huawei.com/repo/'}}dependencies {// 注册MobSDKclasspath "com.mob.sdk:MobSDK:2018.0319.1724"}
}allprojects {repositories {// 添加MobSDK Maven地址maven {url "https://mvn.mob.com/android"}// 配置HMS Core SDK的Maven仓地址。maven {url 'https://developer.huawei.com/repo/'}}
}

在项目App Module的Gradle文件中添加插件和扩展

// 调用MobTech SDK
apply plugin: 'com.mob.sdk'
//注册FCM推送需添加apply plugin: 'com.google.gms.google-services'
// 在MobSDK的扩展中注册MobPush的相关信息
MobSDK {appKey "替换为mob官方申请的appkey"appSecret "替换为mob官方申请的appkey对应的appSecret"MobPush {//集成其他推送通道(可选)devInfo {//华为推送配置信息HUAWEI{appId "华为的appid"}//魅族推送配置信息MEIZU{appId "魅族的appid"appKey "魅族的appkey"}//小米推送配置信息XIAOMI{appId "小米的appid"appKey "小米的appkey"}//FCM推送通道配置FCM{//设置默认推送通知显示图标iconRes "@mipmap/ic_launcher"version "20.2.0"}//OPPO推送配置信息OPPO{appKey "OPPO的appKey"appSecret "OPPO的appSecret"}//VIVO推送配置信息VIVO {appId "应用对应的vivo appID"appKey "应用对应的vivo appKey"}//HONOR推送配置信息HONOR {appId "应用对应的HONOR appID"}}
}

添加厂商回调(可选)

跳转首页

跳转首页获取附加字段的方法:

JSONArray var =  MobPushUtils.parseMainPluginPushIntent(getIntent());
System.out.println("-------------jsonMain打印查看:"+var);

返回说明

返回字段说明
"id":"4bu9702gmq4mvl3myo"id通知任务id ,仅厂商通知有该字段
{"key":"value"}附加字段附件字段需指定,不指定不会出现 ,仅厂商通知有该字段
{"from_tcp":true}from_tcp消息是否来自MobPushTCP通道,true:是
{"msg":"MobPushNotifyMessage{}"}msg消息体,对象为MobPushNotifyMessage,仅MobPushTCP通道消息有该字段
{"channel":"mobpush"}channel渠道名

Scheme跳转

scheme跳转获取参数方法如下

JSONArray var =  MobPushUtils.parseSchemePluginPushIntent(getIntent());
System.out.println("-------------jsonScheme打印查看:"+var);

返回参数如下

返回字段说明
{"from_tcp":true}from_tcp消息是否来自MobPushTCP通道,true:是
{"msg":"MobPushNotifyMessage{}"}msg消息体,对象为MobPushNotifyMessage,仅MobPushTCP通道消息有该字段
{"key":"value"}附加字段附件字段需指定,建议不要使用url做为key
{"mobpush_link_k":"mlink://com.mob.mobpush.link"}schemescheme地址
{"mobpush_link_v":"schemeKey=schemeValue"}scheme参数scheme地址下携带的scheme参数
{"id":"4brfm8nti9aj1arf28"}id推送任务id
{"channel":"xiaomi"}channel渠道名
{"schemeLink":"mlink://com.mobpush.demo2"}schemescheme地址
{"schemeKey":"schemeValue"}scheme参数scheme地址下携带的scheme参数(华为,VIVO,OPPO)
{"schemeKey":"schemeValue","schemeUrl":"mlink://com.mob.mobpush.link"}schemeUrlscheme地址下携带的scheme参数(flyme)

小米厂商通道返回的数据打印样式

[{"mobpush_link_k": "mlink://com.mobpush.demo2","mobpush_link_v": "schemeKey=schemeValue","key": "value"},{"id": "4bqnx6rgmlseuptvy8"},{"channel": "xiaomi"},{"schemeLink": "mlink://com.mobpush.demo2"}
]

华为与VIVO厂商通道返回的数据打印样式

[{"schemeKey": "schemeValue"},{"id": "4bqoxqm2c9t5q6migw"},{"channel": "huawei"},{"mobpush_link_k": "mlink://com.mobpush.demo2","mobpush_link_v": "schemeKey=schemeValue","key": "value"},{"schemeLink": "mlink://com.mobpush.demo2"}
]

魅族厂商通道返回的数据打印样式

注意! 魅族手机不支持跳转到指定界面,默认是跳转到首页,可以在首页获取跳转指定页面的路径,可以通过代码控制跳转

//魅族厂商不支持scheme还原跳转,但是可以在首页打印获取如下
[{"schemeKey": "schemeValue","schemeUrl": "mlink://com.mobpush.demo2"},{"id": "4bqoxqm2cawjqwl534"},{"channel": "flyme"},{"mobpush_link_k": "mlink://com.mobpush.demo2","mobpush_link_v": "schemeKey=schemeValue","key": "value"}
]

OPPO厂商通道返回的数据打印样式

[{"mobpush_link_k": "mlink://com.mob.mobpush.linkone","mobpush_link_v": "schemeKey=schemeValue","onekey": "onevalue"},{"schemeKey": "schemeValue"},{"id": "32ugyk3t819xjwg"},{"channel": "oppo"},{"schemeLink": "mlink://com.mob.mobpush.linkone?pushData={\"mobpush_link_k\":\"mlink://com.mob.mobpush.linkone\",\"mobpush_link_v\":\"schemeKey=schemeValue\",\"onekey\":\"onevalue\"}&id=32ugyk3t819xjwg&channel=oppo&schemeData={\"schemeKey\":\"schemeValue\"}"}
]

添加防止二次混淆的代码(重要

#厂商的混淆规则
-keep class android.os.SystemProperties
-dontwarn android.os.SystemProperties
-keep class com.huawei.**{*;}
-keep class com.meizu.**{*;}
-keep class com.xiaomi.**{*;}
-keep class com.hihonor.push.**{*; }-dontwarn com.huawei.**
-dontwarn com.meizu.**
-dontwarn com.xiaomi.**
-dontwarn com.hihonor.push.**
-keep class com.mob.**{*;}
-dontwarn com.mob.**
-keepclasseswithmembernames class * {native ;
}-keepclasseswithmembers class * {public (android.content.Context, android.util.AttributeSet);
}-keepclasseswithmembers class * {public (android.content.Context, android.util.AttributeSet, int);
}-keepclassmembers class * extends android.app.Activity {public void *(android.view.View);
}-keepclassmembers enum * {public static **[] values();public static ** valueOf(java.lang.String);
}-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;
}-keep class com.huawei.hms.**{*;}
-keep class com.meizu.cloud.**{*;}
-keep class com.xiaomi.mipush.sdk.**{*;}
-keep class org.apache.thrift.**{*;}
-keep class com.google.** {*;}
-keep class com.coloros.** {*;}
-dontwarn com.huawei.hms.**
-dontwarn com.meizu.cloud.**
-dontwarn com.xiaomi.mipush.sdk.**
-dontwarn org.apache.thrift.**
-dontwarn com.google.**
-dontwarn com.coloros.**-dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }
-keep class com.mob.pushsdk.plugins.vivo.PushVivoReceiver{*;}-keep class com.meizu.cloud.pushsdk.MzPushMessageReceiver{
public *;
}-keep class com.mob.pushsdk.plugins.xiaomi.PushXiaoMiRevicer {*;}
-dontwarn com.xiaomi.push.**#这是oppo的混淆规则
-keep public class * extends android.app.Service
-keep class com.heytap.msp.** { *;}
-keep class com.mob.pushsdk.plugins.oppo.** { *;}

其他配置说明

厂商点击统计(重要)

统计厂商通道下发通知的点击数,请在点击通知打开的Activity调用该方法。

MobPush.notificationClickAck(getIntent());

日志调试功能

请在AndroidManifest.xml文件中 下添加上面配置,在日志控制台即可查看到TAG为MobPushLog的相关日志:

FCM配置说明

:FCM通道服务需在FCM官网控制台,下载google-services.json文件,复制到应用module中:

 

apply plugin: 'com.android.application'
dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])
}
android {...
}
//在build.gradle文件的最后添加
apply plugin: 'com.google.gms.google-services'

厂商限制及错误码

华为 参见FAQ 错误码

小米 参见小米推送消息限制说明 错误码

oppo 参见FAQ PUSH运营规范

vivo 参见FAQ 错误码

魅族 魅族暂未给出明确的敏感词或禁止词说明,详细以魅族文档为准或咨询魅族客服Flyme推送接入文档

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...