Android 友盟推送 厂商通道 接入Notes

image

前言

本文章也是就在接入过程中遇到的一些小问题做个记录,希望对遇到问题的开发者有些许帮助。

接入的SDK 版本为:Push SDK 6.1.0

官方文档

目前,友盟推送仅支持以下五家厂商的离线推送。

  • 小米

  • 华为

  • 魅族

  • OPPO

  • VIVO

友盟推送具体文档请参考:

[https://developer.umeng.com/docs/67966/detail/98589]

开始接入

统一配置

在友盟推送管理后台的【应用管理】—>【应用信息】填写各厂商的应用信息(AppKey,AppSecret等),并保存。

友盟推送管理后台地址:

[http://message.umeng.com]

公用代码块

  • 各厂商通道弹窗功能

// FileName: MipushTestActivity.java

public class MipushTestActivity extends UmengNotifyClickActivity {

    private static String TAG = MipushTestActivity.class.getName();

    @Override

    protected void onCreate(Bundle bundle) {

        super.onCreate(bundle);

        setContentView(R.layout.activity_mipush);

    }

    @Override

    public void onMessage(Intent intent) {

        super.onMessage(intent);  //此方法必须调用,否则无法统计打开数

        String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);

        Log.i(TAG, body);

    }

}

//然后在AndroidManifest.xml中配置该Activity,并设置launchMode=”singleTask”和exported=”true”:



  • 推送API中一定得存在以下两个重要字段,才可以实现离线推送噢

//两个重要字段

"mipush":true

"mi_activity":"com.umeng.message.example.MipushTestActivity"        //此处请填写Activity完整包路径

//推送消息json示例

{

"appkey": "",

"mi_activity": "com.umeng.message.example.MipushTestActivity"

"mipush": true,

"timestamp": 1473225266373,

"production_mode": "true",

"type": "unicast",

"device_tokens": "",

"payload":

    {"body":

      {"text": "from pa36a",

        "after_open": "go_app",

        "ticker": "Hello World",

        "title": "listcastpa43"

      },

    "display_type": "notification",

    }

}

Tips : 友盟推送管理后台直接创建推送任务时,请选择发送策略中的厂商通道需选中,并配置打开指定页面,打开指定页面需要配置有继承 UmengNotifyClickActivity 的页面完整路径,例如 MipushTestActivity 的完整路径 : com.umeng.message.example.MipushTestActivity

1. 小米

① 小米开放平台 —> 注册账号 —> 创建应用

② 友盟推送管理后台配置AppSecret

③ 调用方法注册,入参AppId,AppKey,即可:


MiPushRegistar.register(final Context context, final String XIAOMI_ID, final String XIAOMI_KEY);

小米推送无重要注意事项,不过多赘述

2. 华为

① 华为开放平台 —> 注册账号 —> 创建应用

【我的应用】—>【运营】—>【推送服务】

  1. 开启推送服务

  2. 配置回执状态

  • 回调地址:

https://agoo-ack.m.taobao.com/hw/

  • HTTPS证书:

  -----BEGIN CERTIFICATE-----

MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG

A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv

b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAw

MDBaFw0yNDAyMjAxMDAwMDBaMGYxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i

YWxTaWduIG52LXNhMTwwOgYDVQQDEzNHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBW

YWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IB

DwAwggEKAoIBAQDHDmw/I5N/zHClnSDDDlM/fsBOwphJykfVI+8DNIV0yKMCLkZc

C33JiJ1Pi/D4nGyMVTXbv/Kz6vvjVudKRtkTIso21ZvBqOOWQ5PyDLzm+ebomchj

SHh/VzZpGhkdWtHUfcKc1H/hgBKueuqI6lfYygoKOhJJomIZeg0k9zfrtHOSewUj

mxK1zusp36QUArkBpdSmnENkiN74fv7j9R7l/tyjqORmMdlMJekYuYlZCa7pnRxt

Nw9KHjUgKOKv1CGLAcRFrW4rY6uSa2EKTSDtc7p8zv4WtdufgPDWi2zZCHlKT3hl

2pK8vjX5s8T5J4BO/5ZS5gIg4Qdz6V0rvbLxAgMBAAGjggElMIIBITAOBgNVHQ8B

Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUlt5h8b0cFilT

HMDMfTuDAEDmGnwwRwYDVR0gBEAwPjA8BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh0

dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMDMGA1UdHwQsMCow

KKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYB

BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9iYWxzaWduLmNv

bS9yb290cjEwHwYDVR0jBBgwFoAUYHtmGkUNl8qJUC99BM00qP/8/UswDQYJKoZI

hvcNAQELBQADggEBAEYq7l69rgFgNzERhnF0tkZJyBAW/i9iIxerH4f4gu3K3w4s

32R1juUYcqeMOovJrKV3UPfvnqTgoI8UV6MqX+x+bRDmuo2wCId2Dkyy2VG7EQLy

XN0cvfNVlg/UBsD84iOKJHDTu/B5GqdhcIOKrwbFINihY9Bsrk8y1658GEV1BSl3

30JAZGSGvip2CTFvHST0mdCF/vIhCPnG9vHQWe3WVjwIKANnuvD58ZAWR65n5ryA

SOlCdjSXVWkkDoPWoC209fN5ikkodBpBocLTJIg1MGCUF7ThBCIxPTsvFwayuJ2G

K1pp74P1S8SqtCr4fKGxhZSM9AyHDPSsQPhZSZg=

-----END CERTIFICATE-----

  1. 配置SHA256证书指纹,切记,切记,切记,重要的话说三遍

    位置:【我的项目】—>【项目设置】—>【常规】

② 友盟推送管理后台配置AppId,AppSecret

③ 加入代码块


//需要在AndroidManifest.xml中配置AppID,其中xxxxxx为华为应用的AppID



④ 调用方法注册,即可:


HuaWeiRegister.register(final Context context);

⑤ 还是无法推送的话,可以尝试一下 targetSdkVersion 降低至 25

Tips : 应用未通过审核是不影响离线推送服务的噢!

3. 魅族

① 魅族开放平台 —> 注册账号 —> 创建应用

  1. 配置回执

    位置:【配置管理】—>【回执管理】—>【新增】


http://agoo-ack.m.taobao.com/mz/

② 友盟推送管理后台配置AppId,AppSecret

③ 加入代码块


//自定义Recevier组件受魅族接入方式限制,必须在包名目录实现一个自定义Recevier,继承自MeizuPushReceiver,例如:

public class MeizuTestReceiver extends MeizuPushReceiver {

}

//然后在AndroidManifest.xml中配置该Recevier,例如:





        

            

            

            

            

            

            

            

            

            

            

        



④ 调用方法注册,入参AppId,AppKey,即可:


MeizuRegister.register(Context context, String meizuAppId, String meizuAppKey);

4. OPPO

① OPPO推送平台 —> 注册账号 —> 创建应用

② 友盟推送管理后台配置AppKey, MasterSecrect (此时的 MasterSecrect 对应OPPO推送平台的 AppServerSecret)

③ 调用方法注册,入参AppKey,AppSecret (此时的 AppSecret 对应OPPO推送平台的 AppSecret),即可:


//OPPO通道,参数1为app key,参数2为app secret

OppoRegister.register(this, "xxxxxx", "xxxxxx");

OPPO推送无重要注意事项,不过多赘述

5. VIVO

① VIVO推送平台 —> 注册账号 —> 创建应用

② 友盟推送管理后台配置AppId,AppKey, AppSecret

③ 加入代码块


//在Manifest文件中声明App ID 和 App Key,示例如下:











④ 调用方法注册,即可:


//vivo 通道

VivoRegister.register(this);

Tips : 应用未通过审核是无法进行离线推送服务的噢!

VIVO推送无重要注意事项,不过多赘述

End

本文内容比较简单,只是稍微整理了一下,如果能帮助到有需要的开发者也是非常荣幸的一件事情!

本人菜鸟一枚,如有误望指出,不胜感激!

你可能感兴趣的:(Android 友盟推送 厂商通道 接入Notes)