当前位置: 首页 > 知识库问答 >
问题:

Android版Chrome上的网页推送通知:我需要GCM或SNS之类的第三方服务吗?

酆鸿哲
2023-03-14

我想使用服务工作线程在我的渐进式 Web 应用程序 (PWA) 上设置 Web 推送通知。但是我很难理解谷歌云消息传递和亚马逊SNS等第三方服务的角色,以及我是否需要它们。

据我所知,当用户单击“允许通知”按钮时,你将获得一个唯一的订阅终结点。然后,在后端,可以使用此终结点向该特定用户发送通知。

然而,我发现的所有后端库(如pywebpush或Node.js的web-push)都提到需要GCM API键来发送通知。

但以下是 MDN 推送 API 文档的内容:

52之前的Chrome版本要求您在Google云消息传递上设置一个项目以发送推送消息[...]

所以我假设Chrome的新版本(今天的版本58)应该能够在没有第三方帮助的情况下显示通知。

以下是我想要实现的目标的示例。我只是不确定他们在后端做了什么。

注意:我没有试图发送本机推送通知到Android或iOS设备,但只是我Chrome使用Web推送API渐进式Web应用程序。

共有1个答案

魏鸿哲
2023-03-14

正如我在另一个答案中解释的那样,为了发送Web推送通知,您需要与浏览器推送服务进行交互。基本上,当用户允许推送通知时,每个浏览器都会返回一个特定于其自己的推送服务的endpoint(URL)。

例如:

  • Chrome和Operaendpoint以前缀<code>开头https://fcm.googleapis.com/,因为它们使用FCM(不包括GCM)
  • Firefoxendpoint以前缀<code>开头https://updates.push.services.mozilla.com/,因为Firefox使用Mozilla自动推送

因此,通知将始终通过FCM和自动推送,别无选择:推送服务在浏览器中进行硬编码。

还有另一种网络推送服务。他们的目标是在浏览器推送服务上提供一层抽象和附加功能。例如,普什帕德就是其中之一(我是创始人)。

您的web应用无需直接与不同的浏览器推送服务(如FCM、autopush)进行交互,只需与一个推送服务(如Pushpad)进行交互,该推送服务就会为您与浏览器推送服务进行交互(自动执行许多任务,如VAPID,并提供监控和集成等附加功能)。

FCM相当混乱,因为它既充当Chrome和Opera的“浏览器推送服务”,又充当其他浏览器的通用“网页推送通知服务”。所以以Firefox为例,FCM充当了Mozilla autopush的代理。

 类似资料:
  • 我的 Android 应用需要简单的推送通知,以获取有关服务器上新数据外观的通知。Android提供了谷歌云消息(GCM),这似乎很合适。 但是,运行低于Android 4.0.4的设备需要手机上存在Google帐户(根据截至2012年10月1日的Google平台统计数据,目前约占Android手机的75%)。而且,要求用户在不相关的应用程序活动中间设置Google帐户似乎不是一种好的体验。 有没

  • 我正在尝试使用GCM推送通知。我的设备已注册到服务器,并且我还创建了设备注册id。但当我试图从服务器发送消息时,消息不会到达已注册的设备。谁能帮帮我吗? 我的主要activity 软件包COM.ATI.GCM; 导入com.google.android.gcm.gcmRegistratar; 导入Android.os.AsyncTask; 导入Android.os.bundle; 导入androi

  • 在创建平台应用程序时,我尝试创建应用程序和消息推送平台选择GCM,然后添加API密钥,我得到了以下结果。 无效参数:属性原因:平台凭据无效(服务:Amazon SNS;状态代码:400;错误代码:InvalidParameter;请求ID:44a04d15-c58b-5bf8-859e-0311947aac6c) 这意味着什么?我如何修复它?

  • 目前,为了在android操作系统上向android应用程序推送通知,该应用程序似乎需要集成Google Cloud Messaging(GCM)API。App服务器目前通过GCM推送数据,GCM将推送数据到特定设备。 这是一个很傻的问题,但我在想,在这个过程中是否有可能取代GCM?换句话说,有没有可能有一个替代服务器,而不是GCM?其动机是向GCM服务器隐藏数据。

  • 我正在尝试使用AWS SNS来推送我的应用程序的通知。我已经使用用户信息和注册ID成功设置了各个endpointARN的注册。 我可以通过控制台发送单独的消息很好,但是我似乎不知道如何以编程方式发送它(JAVA) 控制台方式:(工作) http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-directmobile.html 通过JAVA