关于android:MobPush-厂商通道SDK集成指南

47次阅读

共计 9291 个字符,预计需要花费 24 分钟才能阅读完成。

开发工具:Android Studio

集成形式:Gradle

安卓版本反对:minSdkVersion 19

集成筹备

MobPush 疾速集成

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

Mob 开发者后盾配置

注册 MobTech 账号后,须要在 MobTech 后盾进行相干信息的配置,详情能够点击查看具体配置信息

日志调试性能

请在 AndroidManifest.xml 文件中 <application>下增加下面配置, 在日志控制台即可查看到 TAG 为 MobPushLog 的相干日志:

<meta-data
      android:name="com.mob.mobpush.debugLevel"
      android:value="4" />

小米通道集成指南

配置依赖

在利用 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
                            // onlyCore true // 可选,增加此配置可无效缩小华为厂商包体大小
                        }
        }
}

MobSDK 对华为厂商依赖进行了优化,可无效缩小华为通道包体大小,如有该需要,可在 HUAWEI{}块中增加onlyCore true

配置代码混同

如果应用了 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 版本,可自行指定
                               // onlyCore true // 可选,增加此配置可无效缩小 FCM 厂商包体大小

                        }
        }
}

MobSDK 对 FCM 厂商依赖进行了优化,可无效缩小该通道包体大小,如有该需要,可在 FCM{}块中增加onlyCore true

配置 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 错误码

魅族 魅族暂未给出明确的敏感词或禁止词阐明,具体以魅族文档为准或征询魅族客服

正文完
 0