共计 4995 个字符,预计需要花费 13 分钟才能阅读完成。
开发工具: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 <methods>;}
-keepclasseswithmembers class * {public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {public <init>(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 文件中 <application> 下增加下面配置, 在日志控制台即可查看到 TAG 为 MobPushLog 的相干日志:
<meta-data
android:name="com.mob.mobpush.debugLevel"
android:value="4" />
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 推送接入文档