Функция FCM getToken не работает на iOS/MacOSIOS

Программируем под IOS
Ответить
Гость
 Функция FCM getToken не работает на iOS/MacOS

Сообщение Гость »


Мне удалось безупречно сгенерировать токен fcm 2 месяца назад, но теперь я столкнулся с ошибками. Отсутствие соединения с демоном push — это ошибка, с которой я столкнулся. Пробую в Safari, используя как пользовательский агент iOS (16.4), так и Safari 16.6, а также iPhone 14 iOS 16. Я пробовал на https и localhost. Раньше мне удавалось сгенерировать токен без жестов пользователя, но я изменил свой код, чтобы он ждал жеста пользователя.

Устройства Chrome и Android работают нормально.

Вот код, который генерирует токен везде, кроме iOS
импортировать приложение из «./init-firebase.js»; импортировать { getMessaging, getToken } из «https://www.gstatic.com/firebasejs/10.5 ... ssaging.js»; константный обмен сообщениями = getMessaging (приложение); асинхронная функция getNotified() { вар NotificationBody = {} !("Уведомление" в окне) ? alert("Этот браузер не поддерживает уведомления на рабочем столе") : // Проверяет серверную часть и, если пользователь подписан, обратно отправляется код 202 await fetch('/get-check-if-subscribed', { метод: «ПОЛУЧИТЬ», заголовки: { «Тип контента»: «приложение/json» } }).then((данные) => { если (data.status == 202) { Notification.requestPermission().then(() => { if (Notification.permission == 'предоставлено') { getToken(messaging, { vapidKey: "*****" }) .then((currentToken) => { NotificationBody = { fcm_token: текущий токен } fetch("/создать-подписку", { метод: «ПОСТ», заголовки: { «Тип контента»: «приложение/json» }, тело: JSON.stringify(notificationBody) }) .then(() => { вернуть window.navigator.serviceWorker .getRegistration('/firebase-cloud-messaging-push-scope') .then((serviceWorker) => { if (serviceWorker) возвращает serviceWorker; return window.navigator.serviceWorker.register('../firebase-messaging-sw.js', { область действия: '/firebase-cloud-messaging-push-scope', }); }); }).catch((e) => /* в этом блоке происходит ошибка */ alert(e)) }) } }).catch((ошибка) => оповещение(ошибка)) } }) } экспорт {getNotified};
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»