android友盟推送集成

author author     2023-03-06     583

关键词:

参考技术A 友盟官方文档: https://developer.umeng.com/docs/67966/detail/153908

第一次认真集成推送,碰到了一些问题,记录一下。

首先讲一下实现原理,我们用的是友盟。Android比iOS要麻烦很多。

友盟集成是需要后端配合的,具体就是后端调用友盟的接口,向友盟推送一条消息,然后友盟再向在他们平台注册过的app发送一条消息,我们要做的就是把接收到的消息展示出来。

需求:用户要能在各个时候都能收到我们APP的推送,并且能对应打开不同的界面

解决方法:集成友盟,但是Android只简单集成友盟是不行的,在APP被杀死以后,就接收不到通知了,所以需要额外集成厂商通道。另一个和iOS不一样的就是,iOS在打开当前APP的时候,可以收到横幅推送,但是Android需要自己做。

什么是厂商通道:

由于国内手机厂商过多地使用应用保活方案实现消息推送功能,因此导致手机耗电加快、卡顿。国内部分手机厂商发现了这一问题,自己推出了消息推送服务。这些手机厂商通过进程管理,杀死后台进程,并提供消息推送能力,让消息通过手机厂商官方推送通道下发到应用程序中。这类典型的手机厂商有小米、华为等。

大致分为两部分:

正常推送集成。

五大厂商通道集成。

详见友盟官方文档: https://developer.umeng.com/docs/67966/detail/153908

点击推送信息以后的处理,收到推送的时候的回调

UmengNotificationClickHandler notificationClickHandler =new UmengNotificationClickHandler()

@Override

    public void dealWithCustomAction(Context context, UMessage msg)

     //点击推送通知以后的处理

        Log.i(TAG,"notificationClickHandler "+msg);

   

;

UmengMessageHandler messageHandler =new UmengMessageHandler()

@Override

    public void dealWithCustomMessage(final Context context, final UMessage msg)

Log.i(TAG,"message "+msg);

   

@Override

    public NotificationgetNotification(Context context, UMessage uMessage)

     //手机收到推送的时候的回调

        Log.i(TAG,"message ");

        //返回默认构造

        return super.getNotification(context, uMessage);

   

;

mPushAgent.setNotificationClickHandler(notificationClickHandler);

mPushAgent.setMessageHandler(messageHandler);

设置最多能看到的推送条数

mPushAgent.setDisplayNotificationNumber(3);

 如果需求中需要打开APP中某个界面,责需要观察 "after_open"字段,默认是  "go_app",需要服务端同学配合



    "msg_id": "uu481201399440513912",

    "display_type": "notification",

    "alias": "",

    "random_min": 0,

    "body":

        "title": "测试自定义参数",

        "ticker": "测试自定义参数",

        "text": "无",

        "after_open": "go_app",

        "url": "",

        "activity": "",

        "custom": "",

        "play_vibrate": "true",

        "play_sound": "true",

        "play_lights": "true"

    ,

    "extra":

        "key1": "value1",

        "key2": "value2"

   



成功以后可以看log

主要看after_open,默认是打开app

友盟官方常见问题: https://developer.umeng.com/docs/67966/cate/66637

1.集成以后收不到推送

(1) mPushAgent.register()要放在application中调用,放在别的地方不起作用

(2) 检查so文件有没有放错地方

(3) 打开日志提示,仔细看提示:UMConfigure.setLogEnabled(true)

2.java.lang.ClassNotFoundException: com.ut.mini.UTAnalytics

尽量更新到最新版本的引用,友盟开发说这个只是提示,不用太在意....

3.杀死进程以后收不到推送

解决方法:集成各个厂商通道

iOS的小伙伴集成以后,就算杀死APP也可以收到推送,为啥Android不可以,伤感,看了文档才知道,我们要集成厂商通道,

4.集成以后收不到推送,显示送达却没有弹出通知

manifest里面的package最好与build.gradle中的applicationId不一 致, 因为我们项目有两个applicationId,所以会出现这种情况

需调用setResourcePackageName设置资源文件包名

移动推送腾讯信鸽集成(代码片段)

...10.0.0)可能会报错。2.调用RestfulApi不谈,稍微麻烦了些。Android端推荐使用AndroidStud 查看详情

友盟推送里面的alias怎么用?可以理解成账号吗?

友盟推送里面的Alias怎么用?可以理解成账号吗?我们的App有自己的账号体系的,想在每次用户登陆的时候,给用户发一个欢迎消息。看了一下友盟推送,里面有一个概念叫做Alias(别名),但是官方文档写着Alias是和设备绑定的,... 查看详情

使用极光/友盟推送,app进程杀死后为啥收不到推送

Android,app进程处于杀死状态,就相当于你手机处于关机了/没有信号的状态,是接不了电话和短信的。要收到推送,自然是让App重启(开机),重新与极光服务器建立起连接(有信号)然后要想的是,怎么让App在杀死后能自动重... 查看详情

友盟消息推送安卓文档python端sdkdemo代码(代码片段)

...LnppcCJdXQ/push-server-pysdk.zip  2.文档:http://dev.umeng.com/push/android/api-doc二、python官方sdk代码中的错误(没错!官方代码有错。)  三、推送类型  sdk中有六中消息类型,分别为单播(unicast)、列播(listcast)、广播(broadcast)、组播(groupcas... 查看详情

使用极光/友盟推送,app进程杀死后为啥收不到推送

...果使用极光的自定义消息,在app杀死之后是接收不到的.在Android系统上面,极光推送实际上使用的还是socket长连接维持推送通道的,当手机中的极光socket全部断开之后就无法接收推送了.全部断开是指所有使用了极光SDK的app,假设A,B都... 查看详情

友盟的常见使用----三方登陆分享和“埋点”(友盟统计)

友盟,专业的移动开发者服务平台,为移动开发者提供免费的应用统计分析、社交分享、消息推送、自动更新、在线参数、移动推广效果分析、微社区等,下面是要分享的内容第三方登录流程友盟支持第三方登录的平台友盟社... 查看详情

远程(离线)推送自定义推送声音,友盟极光

...不对了可以尝试添加格式后缀,如“shegnyin.m4a” 二、友盟的推送:已开始还真没找到,,,后台用参数一试,擦友盟声音只支持:PCM、m4a(IMA/ADPCM)、?Law、aLaw必须是这4种格式之一,添加声音必须是带后缀的“shengyin.m4a” 三... 查看详情

友盟消息推送3.x的坑爹问题s=-11,s1=accsbindapperror(代码片段)

    客户端需要从百度推送切换到友盟推送,太久没看了就去看看了集成文档。    写Demo的过程还算顺利,几分钟就搞定了,但是往项目迁移的时候出出现了坑爹问题,为啥说坑爹呢?因为我用的复制粘贴... 查看详情

android推送服务,目前哪家相对较好

因为目前从总体App的市场占有率来说,第三方推送服务是占比最大的一块。目前主流的第三方推送服务商主要有以下几家:极光推送,个推推送,Mobpush,友盟推送,腾讯信鸽,百度推送,云巴推送等等,下面从几个维度来分析... 查看详情

友盟推送

...这个问题,那么第一条推送就会被覆盖。(这里我用的是友盟的推送,这个推送暂时感觉还不错,大多数推送能及时收到,至少我暂时测试是如此,所以我这里也选择了它,以前 查看详情

安卓使用友盟推送问题总结

最近用了一下友盟的推送,遇到一些问题,做了一下总结.总结总结一如何在未点击推送通知时处理一些操作.友盟文档中只给出了自定义消息和自定义通知栏动作的代码示例.其实在UmengMessageHandler回调中还有一个回调方法dealWithNotific... 查看详情

android多平台push推送服务集成组件化实践(代码片段)

...因为一些原因(hexie)谷哥服务在大陆不能使用,再加之Android系统开源,所以国内基于Android源码定制的各种OS百花齐放,基本大一点的手机品牌厂商为了更好的用户体验都会有自己的深度定制版OS,比如MIUI、EMUI、Colo... 查看详情

android集成华为推送的问题总结

前言      公司最近想要把几个主流平台的推送进行一下整合,做一个DEMO出来,方便之后使用.做安卓开发的童鞋应该也都应该了解,自定义的服务基本上在APP被杀掉后也会被干掉(没有设置后台保护的情况下),所以要保证推送的及... 查看详情

android华为推送服务集成(代码片段)

...  首先说明为什么要华为推送服务呢?这也是因为Android定制系统的问题,国内对安卓系统进行的定制的大厂有华为、小 查看详情

android小米推送服务集成(代码片段)

...面看了。我的小米手机型号是MI8,MIUI版本12.0.4,Android版本10.0。正 查看详情

android小米推送服务集成(代码片段)

...面看了。我的小米手机型号是MI8,MIUI版本12.0.4,Android版本10.0。正 查看详情

使用极光/友盟推送,app进程杀死后为啥收不到推送

参考技术A请检查收不到通知的手机:请在logcat查看日志,确定客户端的jpush是否集成成功,网络是否有问题请看日志或使用接口isPushStopped来检查是否调用了stoppush检查手机的JPush高级设置中是否设置了“允许推送时间”手机的应... 查看详情

android集成华为推送教程(代码片段)

前言目前Android应用在后台杀死进程之后,就收不到通知了,想要接收消息推送,需要集成各个厂商的推送SDK,本次讲解华为集成最新教程1.配置AppGalleryConnect1)注册成为开发者在开发应用前需要在华为开发者... 查看详情