[网易IM通讯]推送小结

(注:这些功能都是在配置好以引入并配置好云信相关sdk后的操作)

网易IM推送这一块儿在我的项目里面流程还挺长的啊!打开文档(https://dev.yunxin.163.com/docs/product/IM%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/Android%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E6%8E%A8%E9%80%81?#%E6%8E%A8%E9%80%81)开始跟着做,到各个厂商开放平台注册账号,等待账号审核。

到各个厂商的开放平台中创建我的应用,添加资料,等待审核。

到这一步,就获取到了各个厂商的appid、appkey、appSecret。这些数据都是为了让云信能够沟通各个厂商的推送功能,这些数据的用处在两处:①配置网易云控制台中应用的推送证书;②代码中,初始化推送(MixPushConfig)设置;

接下来都是代码里面的事儿了:①配置AndroidManifest.xml文件,具体的配置方法在文档中有所记载;②在NIMClient.init(this, getLoginInfo(), NimSDKOptionConfig.getSDKOptions(this))方法的第三个参数中配置好初始化推送(MixPushConfig)设置。

配置的代码是:这些代码返回的MixPushConfig对象设置在options中:options.mixPushConfig = buildMixPushConfig();

    private static MixPushConfig buildMixPushConfig() {

        // 第三方推送配置
        MixPushConfig config = new MixPushConfig();
        // 小米推送

        config.xmAppId = miAppId;
        config.xmAppKey = miAppKey;
        config.xmCertificateName = "xmxxxx";

//        // 华为推送
        config.hwCertificateName = "hwxxxx";
//
        // 魅族推送
        config.mzAppId = mzAppId;
        config.mzAppKey = mzAppKey;
        config.mzCertificateName = "mzxxxx";
//
//        // fcm 推送,适用于海外用户,不使用fcm请不要配置
//        config.fcmCertificateName = "DEMO_FCM_PUSH";

        // vivo推送
//        config.vivoCertificateName = "DEMO_VIVO_PUSH";

        return config;
    }

注册对应机型的push模块:

if (Constant.Current_System.equals(Constant.SYS_HUAWEI))
    HMSAgent.init(this);
if (Constant.Current_System.equals(Constant.SYS_MEIZU))
    PushManager.register(context, Constant.mzAppId, Constant.mzAppKey);
if (Constant.Current_System.equals(Constant.SYS_XIAOMI))
    MiPushClient.registerPush(context, Constant.miAppId, Constant.miAppKey);

打开初始化信息提醒:

NIMClient.toggleNotification(true);           // 初始化消息提醒

到这里前期的配置就好了   吧(大概/八成/也许/可能)

最后就是配置各厂商的兼容性推送(PushMessageReceiver)了,这一块大概没什么难度,每个方法测试一下,主要注意的就是推送达到事件、推送点击事件,这两个事件内写业务了。

最后,这里吐槽一下华为的推送,华为推送在引入的时候要引入两个包:

implementation 'com.huawei.android.hms:base:2.6.3.306'                          //  华为推送
implementation 'com.huawei.android.hms:push:2.6.3.306'                          //  华为推送

还不只,还得根据华为文档去找一个agent模块,将这个模块加入到自己的package中,跟引入的包对接,(咋你这个推送的画风就那么泥石流呢!)

[网易IM通讯]推送小结

上一篇:使用Vue写一个登录页面


下一篇:Class文件结构详解(二)