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

开发工具: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推送接入文档

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据