Isa*_*man 8 permissions google-chrome web-storage indexeddb
我的网络应用程序的用户请求“离线模式”,在互联网连接不可用时将他们的工作存储在硬盘上。他们可能会离线几分钟到几周,因此为了防止工作丢失,我需要能够持久保存数据,即使在存储压力下(在没有适当权限的情况下使用 IndexedDB 可能会导致数据丢失)。
我在 Google Developers 上读到,异步navigator.storage.persist()方法可用于请求用户存储文件的权限,但这在 Chrome 上不起作用 - 承诺总是返回false而不提示用户。
然后我在这里读到Chrome 可能决定不显示权限弹出窗口,而是根据预先计算的决定授予或拒绝持久存储权限。这似乎是基于以下几点:
如果上述任何一项为真,则已授予该权限,否则将自动拒绝。navigator.storage.persist()这意味着在 Chrome 中,和之间没有区别navigator.storage.persisted(),尽管第一个应该是权限请求,第二个应该是权限检查。
我已经构建了用于请求持久存储权限的应用程序内 UI,因此我需要的是一种可靠的方法来让权限弹出窗口显示在 Chrome 中,以便用户可以授予或拒绝该权限。由于我无法控制前三个条件,或合理地要求用户满足它们,似乎我唯一的选择是请求显示推送通知的权限,这很不幸,因为这不是我需要的权限,而且我拥有没有兴趣显示推送通知。类似的权限请求可能会让用户感到困惑。
有没有更清晰、用户友好的方式来获得在 Chrome 中使用持久存储的权限?
如果上述任何一项为真,则已授予该权限,否则将自动拒绝。
这是不正确的;仍然必须请求许可。在请求/批准之前,来源仍将被视为“尽力而为”。该网站必须明确请求许可。您可以通过在调用从未请求过许可的网站persisted()之前调用来观察这一点。persist()
我所需要的只是一种可靠的方法来让权限弹出窗口显示在 Chrome 中,以便用户可以授予或拒绝该权限
Chrome没有这个权限的权限弹出窗口,所以没有这样的方法。
首选模型是在获得许可之前不提供离线能力的保证;也就是说,请求许可,并且仅在获得许可后才显示任何类型的“您的数据绝对可以离线使用”保证。
| 归档时间: |
|
| 查看次数: |
2585 次 |
| 最近记录: |