IOS Web 浏览器上的 Firebase 消息传递

Posted

技术标签:

【中文标题】IOS Web 浏览器上的 Firebase 消息传递【英文标题】:Firebase Messaging on IOS web browsers 【发布时间】:2018-10-21 15:45:30 【问题描述】:

Firebase 消息推送通知可以在桌面和 android 网络浏览器上正常工作,但是当我在 ios 设备上对其进行测试时,我使用的浏览器并不重要,通知和 .getToken() 方法不起作用。我的 javascript 代码是这样的:

if ('Notification' in window) 
    var messaging = firebase.messaging();
    if (Notification.permission === 'granted') 
        subscribe();
    

    $('#notify').on('click', function () 
        subscribe();
    );


function subscribe() 
    // запрашиваем разрешение на получение уведомлений
    messaging.requestPermission()
        .then(function () 
            // получаем ID устройства
            return messaging.getToken()
                .then(function (currentToken) 
                    console.log(currentToken);

                    if (currentToken) 
                        sendTokenToServer(currentToken);
                     else 
                        console.warn('Не удалось получить токен.');
                        setTokenSentToServer(false);
                    
                )
                .catch(function (err) 
                    console.warn('При получении токена произошла ошибка.', err);
                    setTokenSentToServer(false);
                );
        )
        .catch(function (err) 
            console.warn('Не удалось получить разрешение на показ уведомлений.', err);
        );

【问题讨论】:

【参考方案1】:

iOS 上的所有浏览器本质上都是 WebKit(Safari 中使用的浏览器引擎)的包装器,因此它们从那里继承了大部分功能和限制。不幸的是,Safari 仍然不支持 Firebase 云消息传递所需的 Web Push API。

另见:

Push notifications in Apple Safari with FCM ReactJS - FCM not working in safari browser Firebase Cloud Messaging for web documentation caniuse.com page for the push API

【讨论】:

以上是关于IOS Web 浏览器上的 Firebase 消息传递的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 云消息推送通知不再出现在 iOS 上

ios设备上的Firebase InstanceID令牌刷新延迟

有没有办法从 firebase 控制台发送 firebase 网络推送通知

IOS 应用程序中的 Firebase 云消息传递 (FCM) 无法正常工作

Firebase 删除帐户以及 iOS 上的数据库和存储

Firebase 向 iOS 上的用户群发送通知不起作用