当前位置: 移动技术网 > IT编程>移动开发>Android > Android 友盟推送原理解析

Android 友盟推送原理解析

2019年04月18日  | 移动技术网IT编程  | 我要评论

玻璃心五月艾草,密爱土豆网,破鞋弃妃

android 友盟推送原理解析,最近项目使用推送是友盟推送,实际上推送原理相同,但是友盟推送和极光推送在android端的代码编写还是有很大差别的。极光推送我记得是定义广播,然后在广播中发送通知,在设置跳转以一类的,但是在友盟推送中,友盟封装好了,有响应的回调接口。
友盟推送自定义通知:

final umengmessagehandler messagehandler = new umengmessagehandler() {
            //自定义通知
            @override
            public notification getnotification(context context, umessage msg) {
                switch (msg.builder_id) {
                    case build_id:
                        return super.getnotification(context, msg);
                    default:
                        //默认为0,若填写的builder_id并不存在,也使用默认。
                        notification.builder builder = new notification.builder(context);
                        remoteviews mynotificationview = new remoteviews(context.getpackagename(),
                                r.layout.notification_view);
                        mynotificationview.settextviewtext(r.id.notification_title, msg.title);
                        mynotificationview.settextviewtext(r.id.notification_text, msg.text);
                        mynotificationview.setimageviewbitmap(r.id.notification_large_icon, getlargeicon(context, msg));
                        mynotificationview
                                .setimageviewresource(r.id.notification_small_icon, getsmalliconid(context, msg));
                        builder.setcontent(mynotificationview)
                                .setsmallicon(getsmalliconid(context, msg))
                                .setticker(msg.ticker)
                                .setautocancel(true);
                        return builder.build();
                }
            }

            //自定义消息
            @override
            public void dealwithcustommessage(final context context, final umessage msg) {
                new handler(context.getmainlooper()).post(new runnable() {
                    @override
                    public void run() {
                        // 对于自定义消息,pushsdk默认只统计送达。若开发者需要统计点击和忽略,则需手动调用统计方法。
                        boolean isclickordismissed = true;
                        if (isclickordismissed) {
                            //自定义消息的点击统计
                            utrack.getinstance(context).trackmsgclick(msg);
                        } else {
                            //自定义消息的忽略统计
                            utrack.getinstance(context).trackmsgdismissed(msg);
                        }
                        toast.maketext(context, msg.custom, toast.length_long).show();
                    }
                });
            }
        };
        pushagent.getinstance(context).setmessagehandler(messagehandler);

点击通知跳转的回调,友盟已经帮我们写好了:

        umengnotificationclickhandler notificationclickhandler = new umengnotificationclickhandler() {
            @override
            public void launchapp(context context, umessage msg) {
                super.launchapp(context, msg);
                /**
                 * todo 点击跳转,后续处理
                 */
            }
        };
        pushagent.getinstance(context).setnotificationclickhandler(notificationclickhandler);

如果需要跳转到相应的activity,就需要和服务器约定了 ,并且在友盟开发者平台配置。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网