开发工具: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 {
// 注册MobSDK
classpath "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);
返回说明
Scheme跳转
scheme跳转获取参数方法如下
JSONArray var = MobPushUtils.parseSchemePluginPushIntent(getIntent());
System.out.println("-------------jsonScheme打印查看:"+var);
[
{
"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文件中
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推送接入文档