Javascript 如何在MacOS上持久化浏览器存储?
我想将数据持久保存在IndexedDB中 这是我的代码:Javascript 如何在MacOS上持久化浏览器存储?,javascript,google-chrome,persistence,progressive-web-apps,indexeddb,Javascript,Google Chrome,Persistence,Progressive Web Apps,Indexeddb,我想将数据持久保存在IndexedDB中 这是我的代码: if (navigator.storage && navigator.storage.persist) navigator.storage.persist().then(granted => { if (granted) alert("Storage will not be cleared except by explicit user action"); else ale
if (navigator.storage && navigator.storage.persist)
navigator.storage.persist().then(granted => {
if (granted)
alert("Storage will not be cleared except by explicit user action");
else
alert("Storage may be cleared by the UA under storage pressure.");
});
我读了这篇文章:
从Chrome 55开始,Chrome将自动授予
如果以下任一项为真,则为持久性权限:
网站已添加书签(用户的书签不超过5个)
该站点具有较高的站点参与度
该站点已添加到主屏幕
该站点已启用推送通知
我的网站是一个PWA,已安装,并且有权使用推送通知,但是已被授予
在我的Mac上从不真实
,在我的Android智能手机上它可以工作
我做错了什么?Android在默认情况下启用了推送通知,而在iOS上,您必须显式启用(如果您还没有启用) 当你说: 我的网站是PWA,有使用推送通知的权限 你到底是什么意思
推送通知是在客户端/浏览器级别授予的,而不是在PWA上。因此,如果您使用Android设备访问PWA并授予接收通知的权限,那么Safari也必须这样做
如果您想了解如何缓存静态资产和获取服务人员的请求,您可以,我在这里介绍了PWA的不同缓存策略。我的意思是,我已经在Mac上安装了PWA,我猜应该怎样做
该站点已添加到主屏幕为真,我使用了pushManager.subscribe
订阅推送通知应该怎样做该站点已启用推送通知为真。但是navigator.storage.persist()
仍然给我假消息。正如我所说,您必须明确地在iOS上启用通知。您所做的是实现请求发送/接收通知权限的代码,但这并不意味着它们在iOS上已启用。这就是你在Android上安装它们的原因,因为默认情况下会启用通知。我的问题是关于MacOS而不是iOS。