从HBuilderX 1.7.2起,uni-app支持UniPush。 注意
概述UniPush是DCloud推出的集成型统一推送服务,内建了苹果、华为、小米、OPPO、魅族等手机厂商的系统级推送和个推等第三方推送。 国内Android的Push是一个混乱的世界,因为google的push服务器被墙,所以一些国内的安卓手机厂商各自做了自己的推送,比如华为小米魅族等,但还有很多国产手机厂商没有提供官方推送方案。三方独立公司如个推,则提供了独立的push方案。 uniPush解决了这个难题,开发者只需要开发一次。系统会自动在不同手机上选择最可靠的推送通道发送push消息,保障送达率。 UniPush即降低了开发成本、又提高了push送达率,并且免费,是当前推送的最佳解决方案。有个unipush,开发者不应该再使用其他push方案了,其他方案都达不到unipush的效果。 UniPush推送服务由“个推”专为DCloud订制提供技术支持,因此在服务端的集成与“个推·消息推送”完全一致。对于之前使用个推的开发者,可以平滑的迁移到uniPush方案上。 整体架构推送消息类型通常推送消息分以下两种类型:
第一步:开通UniPush推送服务UniPush仅支持uni-app类型项目,其它类型项目暂不支持 注意:开通UniPush后,需在后台配置“厂商推送设置”,否则可能在服务端下发推送消息界面中不会显示第三方厂商推送内容(如intent) 第二步:服务端下发推送消息
复制代码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为APP包名,需要替换为自己APP的包名; 通过开发者中心后台下发推送消息登录DCloud开发者中心,在“我创建的应用”列表中选择应用,左侧选择“Uni Push”,打开消息推送页面。 通过服务端接口下发推送消息服务端集成时首先需要获取AppId、AppKey、MasterSecret参数,登录DCloud开发者中心,在“Uni Push”下的“应用配置”页面中获取,如下图所示: 参考“个推·消息推送”的服务端快速集成文档http://docs./ 通过服务端接口下发推送消息使用厂商通道必须通过“透传消息”类型下发推送消息 复制代码 $payload = '{'title':'测试标题','content':'测试内容','payload':'test'}'; $intent = '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'; $template = new IGtTransmissionTemplate();//使用透传消息模板 $template->set_appId(APPID);//应用appid $template->set_appkey(APPKEY);//应用appkey $template->set_transmissionType(2);//透传消息类型 $template->set_transmissionContent($payload);//消息内容 $notify = new IGtNotify(); $notify->set_title('测试标题'); $notify->set_content('测试内容'); $notify->set_intent($intent); $notify->set_type(NotifyInfo_type::_intent); $template->set3rdNotifyInfo($notify); 第三步:客户端处理推送消息UniPush推送服务已经封装好iOS&Android平台的原生集成工作,开发者只需要调用JS代码处理推送消息的业务逻辑:
注意事项推送通道选择逻辑
华为厂商通道在华为手机上必须安装“华为移动服务”才能使用华为的厂商推送通道,首先确保手机上已经安装“华为移动服务”应用。
其它厂商通道如果应用在线可以接收到推送消息,离线时使用厂商通道无法接收到推送消息,可参考多厂商推送接入流程及注意事项文档(Android) |
|