iOS 16.5是否支持来自Firebase的Web Push API?

4
根据此页面,IOS 16将支持PUSH API。 https://webkit.org/blog/12945/meet-web-push/ 而根据此页面,IOS 16.4和16.5仅部分支持。 https://caniuse.com/push-api 注意:已成功允许通知权限。
现在,我使用了此功能来测试我的手机是否支持Web Push。
function WebPushSupported()
{   if (!window.Notification)
    {   return false;
    }
    
    if (!('serviceWorker' in navigator))
    {   return false;
    }
    
    if (!('PushManager' in window))
    {   return false;
    }   

    return true;
}

现在我已经在我的iOS 16.5(13 Pro Max)上进行了测试

  • 对于Safari浏览器:返回false
  • 对于PWA应用程序:返回true

因此,在PWA应用程序上,我可以正常获取令牌,并且当我尝试使用该令牌发送消息时,结果会返回消息ID,但我仍然无法在PWA应用程序上收到通知。

这是我的测试请求

enter image description here

你们能告诉我,推送API在iOS PWA上是否受支持?如果是,那么对于PWA应用程序,我是否错过了一些流程或设置?

3个回答

2

我也在这方面遇到了困难。我读到你必须按照以下步骤进行:

  1. 打开Safari设置-->实验性功能-->推送API

然后,

  1. 在Safari中打开您想要获得权限的网站
  2. 分享-->添加到主屏幕
  3. 然后从主屏幕打开应用程序
  4. 点击您的应用程序按钮以订阅推送
  5. 接受

当用户从主屏幕删除应用程序时,权限会自动被撤销。


0

是的,在 iOS PWA 中支持使用 FCM 进行 Web 推送。我已经在我的 PWA 中让它们工作了。

您是否已经实现了服务工作者来处理推送通知?

  1. 我建议使用 Google Worbox 作为服务工作者的核心
  2. 按照 这个指南 集成 FCM

注意:服务工作者很复杂,您需要花费一些合理的精力来使其正常工作...


你介意再多分享一些关于这个问题的信息吗?我也在尝试在iOS上让FCM与PWA配合使用。但是我甚至无法让FCM在iOS上工作,当我尝试使用getToken函数发送我的vapid密钥时,它会抛出以下错误: [Error] Unhandled Promise Rejection: FirebaseError: Messaging: This browser doesn't support the API's required to use the Firebase SDK. (messaging/unsupported-browser).我已经在Safari移动端和桌面端启用了Push API,但它们都无法将令牌发送到我的服务器。任何建议都将有所帮助,非常感谢。 - DannyWang
@DannyWang 你使用的是哪个 FCM 版本? - l1b3rty
@l1b3rty 我目前正在测试 firebase: ^9.22.2 - DannyWang
@l1b3rty 我目前正在测试 firebase: ^9.22.2 - undefined

-2

我没有足够的声望来点赞@SuperSecretAndNotSafeFromWork的回答。但我可以告诉你,这对我来说是解决方案。

我已经阅读了大量的论坛,并进入实验性功能 -> 启用Push API,然后从Safari浏览器重新下载应用程序作为书签,使通知按预期与FCM一起工作!

在Firebase控制台中从FCM云测试消息UI进行测试。这是在iOS 16.4.1上完成的。感谢SuperSecretAndNotSafeFromWork的回答 :)

更新:截至16.5(新手机),启用推送API并不是必要的,它可以直接使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接