Firebase на iPad Safari; Не могу найти переменную: Уведомление

Я использую облачные сообщения Firebase, но они не будут работать на iPad и iPhone. Это самое простое использование, которое я могу с этим сделать. Я только что сделал весь урок о внешних уведомлениях, но я получил эту ошибку прямо в скрипте Firebase введите описание изображения здесь,

4 ответа

Решение

Используемая вами библиотека Firebase JavaScript несовместима с Safari на iOS. Браузер Safari, работающий на устройствах iOS, отличается от сборки приложения на рабочем столе и не имеет того же набора функций.

В этом конкретном случае iOS Safari выдает ошибку в вашей библиотеке firebase.js, пытаясь использовать метод requestPermission () API веб-уведомлений, чтобы позволить firebase показывать уведомления пользователю. API уведомлений не существует.

Вы можете увидеть поддержку API уведомлений здесь: http://caniuse.com/

Возможно, вам придется искать альтернативу или отключать библиотеку firebase, когда ваше веб-приложение просматривается на мобильных устройствах, которые его не поддерживают. Если предполагается, что он работает в iOS Safari, вам следует сообщить об ошибке в Firebase и посмотреть, есть ли исправление или обновление, которое решает проблему в библиотеке firebase.js.

I OS не поддерживает API уведомлений https://caniuse.com/

Я создал функцию, которая позволяет узнать, поддерживает ли ее браузер пользователя.

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

И использовать его перед использованием API уведомлений

например:

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

У меня есть ответ от поддержки Firebase:

Всем привет,

Надеюсь, у вас все хорошо, и спасибо, что обратились к нам. Веб-API FCM поддерживает только следующие браузеры, и Safari не является одним из них: Chrome: 50+ Firefox: 44+ Opera Mobile: 37+ Мы изучаем возможные решения, но на данный момент у нас нет никаких подробностей, Если у вас есть другие вопросы или разъяснения, просто дайте нам знать. Мы сделаем все возможное, чтобы помочь.

С уважением, Resty

Облачный обмен сообщениями Firebase JavaScript SDK по-прежнему не поддерживается в Safari (включая iOS Safari).

Чтобы пройти инициализацию для этого неподдерживаемого браузера, я просто создал аналогичную функцию проверки, которую использовал настоящий Firebase SDK .

Другие вопросы по тегам