关于android推送的一些心得
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 透传消息在线走个推通道,离线走厂商通道。
Intent格式如下:其中component第一项是app包名。
intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=com.haopan.app.xdfh/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end
华为厂商通道:
1、客户端调试。其中的token可在华为官网进行消息推送。adb命令请自行查阅
执行命令查token:adb logcat | findstr "Assist_"
执行命令查cid:adb logcat | findstr "clientid"
华为客户端常用错误码。https://developer.huawei.com/consumer/cn/doc/help/100604
附录:
A、华为开发者联盟https://developer.huawei.com/consumer/cn/appgallery/
1、 登录后,进入管理中心,选择应用市场--我的应用,创建应用。
注:需上传应用包,但可不通过审核。
2、开通push功能。开发—概述—API管理,打开pushkit设置
3、开通推送数据存储服务
4、推送测试
运营—活动运营—推送服务,可对推送服务进行测试,需提供设备token。
常见问题:
部分华为手机需要清理应用缓存,在设置—应用信息—华为移动服务—存储,清理应用缓存,再重试。
B、小米https://dev.mi.com/console/
创建应用(无需上架应用)
在管理控制台--消息推送中选择应用,开通推送服务
注意:部分小米手机需要在设置—通知管理—希地丰华应用中设置悬浮通知和锁屏通知。
魅族https://open.flyme.cn/ 无需上架,集成推送
集成推送—配置管理中
ViVo https://dev.vivo.com.cn/home
需要上架应用。在App中没有隐私政策,或者隐私政策中没有收集使用个人信息规则会导致审核失败。
OPPO https://open.oppomobile.com/
需申请开通推送服务,无需上架应用
Unipush使用指南:https://ask.dcloud.net.cn/article/35622