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 消息传递的主要内容,如果未能解决你的问题,请参考以下文章
ios设备上的Firebase InstanceID令牌刷新延迟
有没有办法从 firebase 控制台发送 firebase 网络推送通知