【问题标题】:Firebase on iPad's Safari; Can't find variable: NotificationiPad Safari 上的 Firebase;找不到变量:通知
【发布时间】:2017-01-05 20:13:51
【问题描述】:

我使用 Firebase 的云消息传递,但它不适用于 iPad 和 iPhone。这是我能用它做的最简单的用法。我刚刚完成了所有关于异地通知的教程,但我直接在 Firebase 的脚本 中遇到了这个错误。

【问题讨论】:

    标签: javascript firebase firebase-cloud-messaging


    【解决方案1】:

    iOS 不支持通知 API https://caniuse.com/#search=Notification

    我创建了一个函数,让您知道用户的浏览器是否支持它。

    const isSupported = () =>
    'Notification' in window &&
    'serviceWorker' in navigator &&
    'PushManager' in window
    

    在使用通知 API 之前使用它

    例如:

    if (isSupported()) {
    const hasPermission = Notification.permission === 'granted'}
    

    【讨论】:

      【解决方案2】:

      您使用的 firebase JavaScript 库与 iOS 上的 Safari 不兼容。在 iOS 设备上运行的 Safari 浏览器与应用程序的桌面版本不同,并且没有相同的功能集。

      在这种特定情况下,iOS Safari 会在您的 firebase.js 库上抛出错误,尝试使用 Web 通知 API 的 requestPermission() 方法以允许 firebase 向用户显示通知。不过通知 API 不存在。

      您可以在此处查看对通知 API 的支持:http://caniuse.com/#search=Notification

      当在不支持它的移动设备上查看您的网络应用时,您可能需要查看替代方案或禁用 firebase 库。如果它应该在 iOS Safari 上运行,那么您应该向 Firebase 提交一个错误,并查看是否有可用的补丁或更新来解决 firebase.js 库中的问题。

      【讨论】:

        【解决方案3】:

        Firebase JavaScript SDK 的云消息传递仍然是 does not supported from Safari(包括 iOS Safari)。

        为了给那些不支持的浏览器通过初始化,我刚刚创建了与actual firebase SDK used类似的检查函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-22
          • 1970-01-01
          • 2021-03-25
          • 2018-06-09
          • 2013-12-11
          • 2021-01-21
          • 2023-03-18
          相关资源
          最近更新 更多