Android app umeng推送处理流程

前言

app 中添加推送可以显著提高app打开率,一些重要的通知也可以及时的推送到app端。推送三方平台可选的比较多,这里用umeng做个推送的处理流程解析。

有推送就会有通知绑到一起说

Android app umeng推送处理流程_第1张图片
Android app umeng推送处理流程_第2张图片
1.客户端集成推送方案

集成推送目的无非是为了提高app的打开率,增加日活。时刻告诉用户app服务商的存在。

集成推送需要常驻后台,如何才能常驻后台?

在google 对用户隐私越来越重视的今天。早期解决方案采用双进程,【push 进程】【守护进程】相互拉起。目前该解决方案行不通,google 对非前台进程进行系统级别限制。

umeng 官方文档上提示。手机上集成umeng 推送的app相互之间可以互相拉起对方。开发时试了一下。没有拉起成功。

umeng 推送集成步骤:
1.下载官方demo。官方app sdk中包含推送,埋点上报等,附带有其他的功能。找到需要功能代码配置项,手动移到自己的app中进行验证。

2.检查是否可以正常拿到umeng返回的deviceToken,deviceToken是umeng集成成功与否很重要的指标。【deviceToken 获取异常的解决方式回在umeng debug模式下通过异常信息标识出来】

    mPushAgent.register(new IUmengRegisterCallback() {
            @Override
            public void onSuccess(String deviceToken) {
               
                Logger.e(">>>>>>>>友盟推送服务deviceToken:" + deviceToken);

                mPushAgent.getTagManager().addTags((isSuccess, result) -> {
                }, AppConfig.VERSION_NAME);

            }

            @Override
            public void onFailure(String s, String s1) {
                Logger.e(">>>>>>>>友盟推送服务错误日志s:" + s + "S1:" + s1);
            }
        });

3.前期单独集成集成的push 功能,在app迭代过程中,对到达率有要求。提高umeng到达率除了正确集成umeng,增加三方的渠道推送是水到渠成的方式。国内android 系统在不同厂商定制化后,碎片化严重。导致每家厂商都推出了自己推送服务,来保证自己厂的手机能够有较高的到达率。

4.目前,opp,vivo,华为,小米,魅族均有推送渠道,注册账户根据说明文档,配置相关参数,回调就可以集成成功。【验证集成是否成功使用Logger过滤,比较直接】

5.集成三方推送渠道,需要在gradle配置中增加相应依赖。【umeng demo中查找】

以上部分就是集成push中需要做的,集成完成基础推送之后,就需要考虑对推动消息的处理,umeng方面提供两种处理方式。

方式一,完全自定义,自己处理推送展示view以及推送点开率统计。【适合那些紧密依靠push业务的app】
方式二,部分自定义,大部分采用推送消息过滤处理交给sdk来做。【适合,系统消息,升级提醒。与业务关联不紧的需求】

6.umeng 推送收到消息后可以直接跳转到二级页面,或者三级界面。采用的技术方案,deeplink。或者TaskStackBuilder,在mainifest.xml中配置parentsActivity。

        TaskStackBuilder stackBuilder = TaskStackBuilder.create(context).addNextIntent(intent);
         stackBuilder.addParentStack(SplashActivity.class);
        stackBuilder.addNextIntent(intent);
        PendingIntent resultPendingIntent =
                stackBuilder.getPendingIntent(
                        0,
        PendingIntent.FLAG_CANCEL_CURRENT
                );
        return resultPendingIntent;

或者可以采用直接跳转到一个单独的承载界面,比方pushActivity【主要显示一些H5类的简单信息】,点击返回跳转到app。还有一种比较简单的方式就是收到推送消息,唤起app mainActvity。对推动的msg进行解析再跳转。【推荐最后一种,处理简单,好上手】

7.推送一般都是只有在app在后台才进行处理推送消息。在前台不去处理推送消息。即使收到推送msg,也不进行处理。【pushAgain.getinstance().enable(),disenable()】 进行动态开始关闭推送。

你可能感兴趣的:(android,基础知识)