道招

从PWA消息推送调试经历来看PWA现状,PWA凉了,凉透了吗?

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

从PWA消息推送调试经历来看PWA现状,PWA凉了,凉透了吗?

前几天写的《Android摸索记录--HMS消息推送》里面提到了自己在用app做消息推送之前试过PWA,自己也实测一下,发现之前的PWA推送功能属于半残废状态。因为自己调整过个人项目中各个系统的分工,当时有关PWA接口部分,属于迁移到一半的状态,一直没有腾出时间也就没管了。趁着自己写文章的这几天,重新测试了一把,梳理了相关代码结构,测试发现现在道招网的PWA推送是瘫痪状态。。。

自己在调试PWA功能期间有如下发现:

浏览器兼容性

对国内手机浏览器而言,PWA基本是废的,不支持接收通知,不支持将PWA应用安装到手机上。

下面是我用鸿蒙系统的华为浏览器截图

file

file

file

没有出现安装入口,也没有显示是否有消息通知权限

自己用家里的iphone 6 plus的Sarafi试了下也没有,不知道是不是因为版本过低。

目前Firefox浏览器也已经宣布不支持PW了,只发现有Chrome、Edge、Opera支持。

消息发送接入方式调整

道招网的PWA消息推送是使用主流库web-push来完成的,目前这个库发送消息的参数有点变化,因为需要走Firebase Cloud Messaging,根据最新api需要额外传递一个谷歌的FCM(也就是Firebase Cloud Messaging,原GCM)的api key,其实就是图中的Server key。

file 我目前用的是老的接入方式,没有用v1,后期可以考虑迁移到V1。

然后在网上看的需要在PWA的manifest.json也同步增加这个 file

特别提醒下,之前的在用户订阅的时候传的的publicKey不用轻易更换,因为当初用户订阅生成的endpoint生成是用到了这个publicKey的,如果后期更换了,然后用新的publicKey推送消息的话,是推送不到这些老publicKey订阅的用户,因为校验不会通过的。

平时用到的FCM接口返回的状态码如下:

  • 201 FCM成功接收push通知 (FCM接收到你的通知请求并不代表订阅用户就收到了,这只是成功的必要条件)
  • 401 auth校验不通过,多半Server key有问题
  • 410 订阅用户的endpoint不合法,多半改过publicKey

file

网络

自己在本地调试的时候也发现了消息是否成功发送跟网络也有关系,毕竟FCM是谷歌的,科学上网还是要的,不然在web-push发送消息调用FCM接口会超时的。如果有国外的服务器的话,建议将通知用户接口(必需)和接收订阅用户接口部署在国外的服务器上,否则你跟你的订阅用户就百分百失联了。

如果FCM接口返回的状态是201,该通知消息才有可能被订阅用户收到,谷歌是是收到你的推送意图,但是谷歌能否通知到你的订阅用户就得看你的订阅用户的网络怎么样了,用户的手机系统,我实测的时候pixel手机能收到,国产手机有时候就没有成功收到。。。

总结

我一直都挺喜欢PWA的,只要处理好版本更新控制,PWA缓存功能用的挺爽的,网页打开变快,下次离线也能访问,但是我说的不算,APP、手机系统厂商就对她不感兴趣。PWA现在就是这个不温不火,目前我就知道Instagram、Twitter在用,还有Android Developer、Developer Google在用,在国内就是凉凉的状态了,或许也已经凉透了。

更新时间:
上一篇:下一篇:

相关文章

关注道招网公众帐号
联系博主