首页 > 其他分享 >MobPush 厂商通道SDK集成指南

MobPush 厂商通道SDK集成指南

时间:2022-12-01 12:03:26浏览次数:74  
标签:指南 keep mobpush mob android SDK com class MobPush

开发工具: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);

返回说明

返回

字段

说明

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

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

#厂商的混淆规则
-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中:

MobPush 厂商通道SDK集成指南_字段

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推送接入文档​

标签:指南,keep,mobpush,mob,android,SDK,com,class,MobPush
From: https://blog.51cto.com/u_14192352/5901504

相关文章

  • 视频美颜SDK的AI磨皮功能是怎么实现的?
    在上篇中,小编讲到了美颜SDK的AI美颜算法与传统美颜算法的区别,大家反响强烈。今天,小编为继续为大家讲解AI美颜相关的功能——AI磨皮。传统的磨皮功能大家应该比较熟悉,因为技......
  • 安全配置错误规避指南
    在2019年,安全研究人员发现AtlassianJIRA中存在安全配置错误,这是一款全球超过100,000家组织和政府机构使用的项目管理软件。JIRA配置错误允许任何人通过简单的搜索查......
  • 开源分布式事务中间件Seata使用指南
    介绍 Seata是阿里巴巴开源的分布式事务中间件,一种分布式事务解决方案,具有高性能和易于使用的微服务架构。 初衷对业务无侵入:即减少技术架构上的微服务化所带来的分布式事......
  • MobPush for SDK API
    推送监听接口(addPushReceiver)描述:添加推送监听,可监听接收到的自定义消息(透传消息)、通知消息、通知栏点击事件、别名和标签变更操作。/***com.mob.pushsdk.MobPush.cl......
  • uniApp安卓离线SDK运行
    一、下载uniapp提供的离线SDK包下载地址:https://nativesupport.dcloud.net.cn/AppDocs/download/android版本:2022年09月26日发布——HBuilderX(3.6.4.20220922)二、下载An......
  • Mysql使用指南
    创建数据库createdatabasedatabase_name;查看已有数据库showdatabases;支持汉字ALTERDATABASEdatabase_nameCHARACTERSETUTF8;切换进入数据库usedataba......
  • 用uniapp开发打包多端应用完整指南
    ​一、uni-app项目介绍用uni-app开发多端项目,一套代码可同时打包出各端小程序、h5和app,uni-app支持通过HBuilderX可视化界面和vue-cli命令行两种方式创建项目,下面示......
  • ArcObjects SDK开发 008 从mxd地图文件说起
    1、Mxd文件介绍ArcGIS的地图文件为.mxd扩展名。Mxd文件的是有版本的,和ArcGIS的版本对应。可以在ArcMap中的File-SaveACopy,保存一个地图拷贝的时候选择Mxd文件的版本,支持......
  • rocketmq-spring-boot-starter使用指南
    ​​https://github.com/javahongxi/whatsmars.git​​针对官方starter修改点​​官方​​支持连接多个集群(订阅)(官方一个应用只能连接一个集群)顺序消息消费失败,可配重......
  • 【Java技术指南】「实战盲区」深入透析Java8的Stream的原理及实战指南
    Java最有影响力的功能要说到Java8的技术体系中,最让人难以忘怀的功能,那非Lambda和Stream莫属了。两者结合操作,达成天作之合,有点势不可挡。它主要用于补充集合类,它的强大,相信......