您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
unipush009离线推送-FCM(google)
发布时间:2024-08-29 18:23:32编辑:雪饮阅读()
-
所谓离线推送就是app被杀死的情况下走厂商的推送通道。
而对于安卓来说,官方厂商自然就是google了。
而google官方推送通道是在firebase里面的云消息传递里面的。
那么首先你需要有firebase账号,firebase控制台访问
https://console.firebase.google.com/
若没有就注册账号,然后默认会有0美元每月的套餐,但是能用多久没有细究。
建立应用并下载google-services.json
然后创建项目后来到项目设置里面“常规”=》“你的应用”,若没有创建过应用,则“你的项目中没有任何应用”右边的安卓图标点击后开始建立应用。
Step1注册应用里面的”android软件包名称”我是按uniapp开发者后台“uni-push”=》”2.0(支持全端推送)”=>”应用信息”=》“Android 包名”保持一样的。为了谨慎起见,虽然我也不知道有没有用。
Step1的“应用别名”我保持默认
Step1里面的“调试签名证书SHA-1(可选)”,虽然是可选,但我还是也保持和uniapp开发者后台“uni-push”=》”2.0(支持全端推送)”=>”应用信息”=》“Android 应用签名”(其实也就是关联你所选的那个证书的sha1值)保持一致。为了谨慎起见,虽然我也不知道有没有用。
然后点击“注册应用”
然后进入step2”下载并添加配置文件”,点击下载”google-services.json”后面要用的。
然后再点击“下一步”
进入step3“添加Firebase SDK“
据个推文档说Sdk的添加可以忽略,云端打包机已经处理。所以也直接继续下一步。
回到项目控制台后来到
确保新版HTTP V1
在“项目设置“=》”云消息传递“里面确保
“Firebase Cloud Messaging API (V1)check_circle已启用“
因为我新对接的并且在uniapp开发者后台“uni-push”=》”2.0(支持全端推送)”=>”厂商推送设置”=》“FCM“选中的是”新版HTTP V1 “
生成私钥
然后
“项目设置“=》”服务账号“=》”Firebase Admin SDK“=》”Admin SDK 配置代码段“勾选为”Java“,然后点击”生成新的私钥“。
会产生一个文件下载,下载的是纯文本的json文件,检查下
“请将Google提供的密钥文件文件内容拷贝到此处,type需为service_account, 同时private_key_id、private_key、client_email、project_id 不能为空“
配置FCM
接下来将刚才下载下来的这个json文件检查没有问题(一般应该也是符合要求,没有问题的),直接贴入uniapp开发者后台“uni-push”=》”2.0(支持全端推送)”=>”厂商推送设置”=》“FCM“=》”新版HTTP V1 “的”密钥文件“里面,同样路径的” google-services.json“则贴入刚才新建应用时候的google-services.json的内容。然后保存应该会有” 通道开关“出现,并且默认是开启状态。也保证为开启状态。并再次保存,为了谨慎起见。
小插曲
注意uniapp开发者后台“uni-push”=》”2.0(支持全端推送)”=>”厂商推送设置”=》“FCM“这里有段提示:
Google 推送服务 FCM 需要使用 HBuilderX 2.7.10 以上版本并且是 GooglePlay 渠道打包时才能生效。
虽然这样提示,但是我的hbuilderx是4.x比这里提示的版本高,并且我自定义基座时并没有勾选GooglePlay(AAB),我发现离线消息也能收到。
虽然第一次“弄错“sha1密钥(发现可能是前番用的uniapp开发者后台生成的那个证书的sha1吧),但在新基座下离线消息测试成功,于是我更换自定义证书的sha1密钥后发现离线消息没有成功,但是当我正要以GooglePlay(AAB)基座开始自定义基座打包已经进行时,这个时候离线消息又来了。此时我手机中仍旧是旧版的没有勾选GooglePlay自定义基座。
所以我对“Google 推送服务 FCM 需要使用 HBuilderX 2.7.10 以上版本并且是 GooglePlay 渠道打包时才能生效。
“保持怀疑态度。
不晓得是google这种外网导致的网络政策限制还是怎么回事,也有可能其他厂商离线推送也有延迟?
关键字词:unipush,推送,离线,离线推送,FCM,google