Android推送的现状
消息推送功能如今已经成为了app的必备功能,主要是通过推送(push)的方式将app相关的资讯和活动等消息发送给用户,能够有效的在app自身的生态内发挥推广营销的作用,也是维护用户关系、增强用户的重要工具。
因为Google的push服务器被墙,国内Android的Push是一个混乱的世界。
android 目前主流的第三方推送服务商主要有以下几家:极光推送,个推推送,Mobpush,友盟推送,腾讯信鸽,百度推送,云巴推送等等。目前极光和个推这这两家已经是占据了大部分到市场份额、产品稳定性,但价格较贵,Mobpush价格是全免费的(包括离线推送)。
如果只使用三方push,会在很多国产手机上因为节电设置而无法保活push进程,导致无法推送。一些国内的安卓手机厂商各自做了自己的推送,比如华为、小米、OPPO、VIVO、魅族等,还有很多国产手机厂商没有提供官方推送方案。而如果每个安卓手机的官方Push SDK都集成开发一遍,这么多平台,工作量会非常巨大,管理维护也很麻烦。
UniPush使用心得
公司使用Hbuilder开发App的原因,一直使用的是个推。但只有app启动的时候能收到推送,却无法收到离线通知,但个推对厂商通道要另外收费,增加小公司集成成本。
UniPush是DCloud联合个推公司推出的集成型统一推送服务。相当于个推vip push产品,免费提供给了DCloud的开发者。
消息类型:
1、推送消息类型:通知消息、透传消息。
透传消息只负责消息传递,不显示通知,需要客户端创建通知。
2、UniPush通过服务端接口下发推送消息使用厂商通道必须通过“透传消息”类型下发推送消息。
3、UniPush推送服务对透传消息的数据符合以下格式时做了特殊处理,会将透传消息显示到系统通知栏。
{"title": "xxx","content": "xxx","payload": "xxx"}
4、个推 IOS 通知消息,在离线均走APNs通道(苹果官方推送通知服务)。透传消息,在线走透传消息,离线走APNs通道。
个推Android 透传消息在线走个推通道,离线走厂商通道。
华为厂商通道:
1、客户端调试。其中的token可在华为官网进行消息推送。adb命令请自行查阅
执行命令查token:adb logcat | findstr "Assist_"
执行命令查cid:adb logcat | findstr "clientid"
华为客户端常用错误码。https://developer.huawei.com/consumer/cn/doc/help/100604
问题:华为官网推送可以成功,但uni官网离线推送不走华为推送通道
可能的原因:这个问题我找了很久,后来打包时把android的targerSdkVersion改成26就解决了。(华为上架也要求targetSdkVersion26以上)
2、服务端注意点:
intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=io.dcloud.HBuilder/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end
io.dcloud.HBuilder改成自己的包名。
代码中透传模板需与设置intent绑定。
template.set3rdNotifyInfo(noti);
Unipush使用指南:https://ask.dcloud.net.cn/article/35622