APP推送功能基本属于必备功能,但是普通推送功能在安卓系统中只要APP被杀死后台进程后就无法及时正常推送到用户。
为了实现后台推送,我们需要通过厂商推送渠道,通过手机生产厂商来进行推送。不过市面上大部分集成的厂商推送渠道挺多都是收费的,而且费用极高,例如极光,一年基本要3-5W。
经过多次尝试发现目前阿里云平台提供免费的集成厂商渠道推送平台。而且最重要在apicloud平台中也有对应收费模块(300+元相对几万相当划算)
使用方法
1:首先去注册申请各大厂商推送渠道的帐号并开通对应的渠道(申请成功后会给予对应的)
2:至阿里云平台注册并申请开通渠道推送服务(apicloud模块文档中也有对应的注册教学)
https://account.aliyun.com/login/login.htm
3:到apicloud平台购买模块
阿里云渠道推送对应模块有两个
如果项目中已经引入了aliPayPlus(支付宝支付模块等阿里云相关模块)建议购买并使用第二款模块,避免发生模块冲突
按文档所述引入模块,并在config文件中配置对应信息
<meta-data name="com.huawei.hms.client.appid" value="appid=华为开放平台申请的ID信息" /> <meta-data name="com.vivo.push.api_key" value="请填写vivo平台上注册应用的appKey" /> <meta-data name="com.vivo.push.app_id" value="请填写vivo平台上注册应用的appID" /> <feature name="aliPush"> <param name="AppKey_iOS" value="23398490"/> <param name="AppSecret_iOS" value="e4af5692df06ebbc621b55657ca4a4bc"/> <param name="AppKey_Android" value="23398490"/> <param name="AppSecret_Android" value="e4af5692df06ebbc621b55657ca4a4bc"/> <param name="XmAppID" value="你的小米appid"/> <param name="XmAppKey" value="你的小米appkey"/> <param name="OppoAppKey" value="你的oppo appkey"/> <param name="OppoAppSecret" value="你的oppo appsecret"/> <param name="MeizuAppId" value="你的meizu appid"/> <param name="MeizuAppKey" value="你的meizu appkey"/> <param name="channelId" value="你的推送渠道ID(兼容Android8.0)"/> <param name="channelName" value="你的推送渠道名称(兼容Android8.0)"/> <param name="channelDes" value="你的推送渠道描述(兼容Android8.0)"/> <param name="enableLights" value="true"/> <param name="enableVibration" value="true"/> </feature>
并在APP入口页面初(index.html)始化该模块
var aliPush = api.require('aliPush'); setTimeout(function(){ aliPush.isRegister(function(ret, err) { aliPush.onAppStart(function(ret, err) { }); aliPush.getDeviceId(function(ret) { }); }); },1000);
重新打包APP(正式包),如若config信息填写无误即可正常使用,部分渠道例如OPPO、VIVO由于厂商限制可以需要用户手动开启推送权限,并将APP设置为推送白名单后才可正常使用。
由于渠道不同,部分机型部分渠道可能接收速度不同。第一次测试时如若未接收到建议可以多使用几款不同厂商的手机测试,并耐心等候,初次测试,可能推送反应较慢。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com