开发工具:Android Studio
集成方式:Gradle
安卓版本支持:minSdkVersion 19
集成准备
MobPush快速集成
在使用厂商通道之前,请确保您已申请MobTech开发者账号并已按照MobPush快速集成文档进行集成,本篇文档将默认您已完成该步骤
Mob开发者后台配置
注册MobTech账号后,需要在MobTech后台进行相关信息的配置,详情可以点击查看具体配置信息
日志调试功能
请在AndroidManifest.xml文件中 下添加上面配置,在日志控制台即可查看到TAG为MobPushLog的相关日志:
小米通道集成指南
配置依赖
在应用 module 的 gradle文件中找到MobSDK代码块,添加XIAOMI代码块:
MobSDK {
......
MobPush {
devInfo {
//小米推送配置信息
XIAOMI{
appId "您的应用对应的小米的APPID"// 小米平台注册的appid
appKey "您的应用对应的小米的APPKEY"// 小米平台注册的appkey
}
}
}
配置代码混淆
如果使用了 proguard,为了防止误报的 warning 导致无法成功编译,需要在配置文件中加入以下内容:
-dontwarn com.xiaomi.push.**
-keep class com.xiaomi.push.** { *; }
-keep class com.mob.pushsdk.plugins.xiaomi.PushXiaoMiRevicer {*;}
-dontwarn com.xiaomi.**
-keep class com.xiaomi.**{*;}
-keep class com.xiaomi.mipush.sdk.**{*;}
-dontwarn com.xiaomi.mipush.sdk.**
集成结果判断
若集成成功,日志显示如下:
[MobPush]MobPush start init...
[MobPush]MobPush wait for auth ...
[MobPush]MobPush real start init ...
[MobPush][XIAOMI] channel start init
[MobPush]Mob-XIAOMI plugins initing
[MobPush]Check push channel [XIAOMI] configuration information, appId:xxxxxxxxxx, appKey:xxxxxxxxxx
[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx
[MobPush][XIAOMI] channel register successful.
华为通道集成指南
配置maven
在 Project 根目录的主 gradle 中配置华为maven地址。
buildscript {
repositories {
// 配置HMS Core SDK的Maven仓地址。
maven {
url 'https://developer.huawei.com/repo/'}
}
dependencies {
}
}
allprojects {
repositories {
// 配置HMS Core SDK的Maven仓地址。
maven {
url 'https://developer.huawei.com/repo/'}
}
}
配置依赖
在应用 module 的 gradle文件中找到MobSDK代码块,添加HUAWEI代码块:
MobSDK {
......
MobPush {
devInfo {
//华为推送配置信息
HUAWEI{
appId "您的应用对应的华为的APPID" // 华为平台注册的appid
// version "x.x.x.xxx" // 可选,可自行指定华为推送SDK版本,默认为6.7.0.300
}
}
}
配置代码混淆
如果使用了 proguard,为了防止误报的 warning 导致无法成功编译,需要在配置文件中加入以下内容:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep class com.huawei.**{*;}
-keep class com.huawei.hms.**{*;}
-dontwarn com.huawei.hms.**
-dontwarn com.huawei.**
如果开发者使用了 AndResGuard,需要在混淆配置文件中加入 AndResGuard 白名单。
"R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"
集成结果判断
若集成成功,日志显示如下:
[MobPush]MobPush start init...
[MobPush]MobPush wait for auth ...
[MobPush]MobPush real start init ...
[MobPush][HUAWEI] plugin ready
[MobPush][HUAWEI] channel start init
[MobPush]Mob-HUAWEI plugins initing
[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx
[MobPush][HUAWEI] channel register successful.
荣耀通道集成指南
配置依赖
在应用module的gradle文件中找到MobSDK代码块,添加HONOR代码块:
MobSDK {
......
MobPush {
devInfo {
//荣耀推送配置信息
HONOR{
appId "您的应用对应的荣耀的APPID"// 荣耀平台注册的appid
}
}
}
配置代码混淆
如果使用了 proguard,为了防止误报的 warning 导致无法成功编译,需要在配置文件中加入以下内容:
-ignorewarnings
-keepattributes *Annotation*
-keepattributes Exceptions
-keepattributes InnerClasses
-keepattributes Signature
-keepattributes SourceFile,LineNumberTable
-keep class com.hihonor.push.**{*; }
-dontwarn com.hihonor.push.**
集成结果判断
若集成成功,日志显示如下:
[MobPush]MobPush start init...
[MobPush]MobPush wait for auth ...
[MobPush]MobPush real start init ...
[MobPush][HONOR] channel start init
[MobPush]Mob-HONOR plugins initing
[MobPush]request deviceToken success:BAEAAAAAD.StrWLJVdk
[MobPush][HONOR] channel register successful.
魅族通道集成指南
配置依赖
在应用 module 的 gradle文件中找到MobSDK代码块,添加MEIZU代码块:
MobSDK {
......
MobPush {
devInfo {
//魅族推送配置信息
MEIZU{
appId "您的应用对应的魅族的APPID" // 魅族平台注册的appid
appKey "您的应用对应的魅族的APPKEY" // 魅族平台注册的appkey
}
}
}
配置代码混淆
如果使用了 proguard,为了防止误报的 warning 导致无法成功编译,需要在配置文件中加入以下内容:
-dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** { *; }
-dontwarn com.meizu.**
-keep class com.meizu.**{*;}
-keep class com.meizu.cloud.pushsdk.MzPushMessageReceiver{ public *; }
集成结果判断
若集成成功,日志显示如下:
[MobPush]MobPush start init...
[MobPush]MobPush wait for auth ...
[MobPush]MobPush real start init ...
[MobPush][MEIZU] channel start init
[MobPush]Check push channel [MEIZU] configuration information, appId:xxxxx, appKey:xxxxxxxxxxxxxxxxxxxxxxx
[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx
[MobPush][MEIZU] channel register successful.
vivo通道集成指南
配置依赖
在应用 module 的 gradle文件中找到MobSDK代码块,添加VIVO代码块:
MobSDK {
......
MobPush {
devInfo {
//VIVO推送配置信息
VIVO{
appId "您的应用对应的VIVO的APPID" // VIVO平台注册的appid
appKey "您的应用对应的VIVO的APPKEY" // VIVO平台注册的appkey
}
}
}
配置代码混淆
如果使用了 proguard,为了防止误报的 warning 导致无法成功编译,需要在配置文件中加入以下内容:
-dontwarn com.vivo.push.**
-keep class com.vivo.push.**{*; }
-keep class com.vivo.vms.**{*; }
-keep class com.mob.pushsdk.plugins.vivo.PushVivoReceiver{*;}
集成结果判断
若集成成功,日志显示如下:
[MobPush]MobPush start init...
[MobPush]MobPush wait for auth ...
[MobPush]MobPush real start init ...
[MobPush][VIVO] channel start init
[MobPush]MobPush-Vivo plugins initing
[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx
[MobPush][VIVO] channel register successful.
OPPO通道集成指南
配置依赖
在应用 module 的 gradle文件中找到MobSDK代码块,添加OPPO代码块:
MobSDK {
......
MobPush {
devInfo {
//OPPO推送配置信息
OPPO{
appKey "您的应用对应的OPPO的APPKEY" // OPPO平台注册的appkey
appSecret "您的应用对应的OPPO的APPSECRET" // OPPO平台注册的appSecret
}
}
}
配置代码混淆
如果使用了 proguard,为了防止误报的 warning 导致无法成功编译,需要在配置文件中加入以下内容:
-dontwarn com.coloros.mcsdk.**
-keep class com.coloros.mcsdk.** { *; }
-dontwarn com.heytap.**
-keep class com.heytap.** { *; }
-dontwarn com.mcs.**
-keep class com.mcs.** { *; }
-keep public class * extends android.app.Service
-keep class com.heytap.msp.** { *;}
-keep class com.mob.pushsdk.plugins.oppo.** { *;}
集成结果判断
若集成成功,日志显示如下:
[MobPush]MobPush start init...
[MobPush]MobPush wait for auth ...
[MobPush]MobPush real start init ...
[MobPush][OPPO] channel start init
[MobPush]MobPush-OPPO plugins initing
[MobPush]Check push channel [OPPO] configuration informatio
[MobPush][OPPO] channel getSDKVersion:3.1.0
[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx
FCM通道集成指南
配置 maven
在 Project 根目录的主 gradle 中配置 mavenCentral 支持和 google-services 依赖。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.14'
}
}
allprojects {
repositories {
mavenCentral()
maven { url "https://maven.google.com" }
}
}
添加 FCM 插件
//注册FCM推送需添加
apply plugin: 'com.google.gms.google-services'
配置依赖
在应用 module 的 gradle文件中找到MobSDK代码块,添加FCM代码块:
MobSDK {
......
MobPush {
devInfo {
//FCM推送配置信息
FCM{
iconRes "@mipmap/ic_launcher" //设置默认推送通知显示图标,可自行更改
version "23.1.0" // FCM版本,可自行指定
}
}
}
配置 google-services.json文件
参考 厂商通道参数申请指南 获取 google-services.json 文件,并配置到 app 目录下。
集成结果判断
若集成成功,日志显示如下:
[MobPush][FCM] channel start init
[MobPush]Mob-FCM plugins initing
[MobPush]MobPush start init...
[MobPush]MobPush wait for auth ...
[MobPush]MobPush real start init ...
[MobPush]request deviceToken success:xxxxxxxxxxxxxxxxxxxxxxx
[MobPush][FCM] channel register successful.
添加厂商回调(可选)
跳转首页
跳转首页获取附加字段的方法:
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”}
scheme
scheme地址
{“mobpush_link_v”:”schemeKey=schemeValue”}
scheme参数
scheme地址下携带的scheme参数
{“id”:”4brfm8nti9aj1arf28″}
id
推送任务id
{“channel”:”xiaomi”}
channel
渠道名
{“schemeLink”:”mlink://com.mobpush.demo2″}
scheme
scheme地址
{“schemeKey”:”schemeValue”}
scheme参数
scheme地址下携带的scheme参数(华为,VIVO,OPPO)
{“schemeKey”:”schemeValue”,”schemeUrl”:”mlink://com.mob.mobpush.link”}
schemeUrl
scheme地址下携带的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"}"
}
]
厂商点击统计
统计厂商通道下发通知的点击数,请在点击通知打开的Activity调用该方法。
MobPush.notificationClickAck(getIntent());
厂商限制及错误码
华为 参见FAQ 错误码
小米 参见小米推送消息限制说明 错误码
oppo 参见PUSH运营规范
vivo 参见FAQ 错误码
魅族 魅族暂未给出明确的敏感词或禁止词说明,详细以魅族文档为准或咨询魅族客服
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net