是否可以在iOS上的渐进式网络应用程序(PWA)和独立Safari之间共享IndexedDB存储和数据?如果是这样,我需要采取哪些步骤来共享商店/数据?
我的用例是我有一个使用第三方身份验证的潜在PWA。正常行为是,当导航到第三方认证页面时,PWA会自动在新的Safari窗口中打开页面,因为它超出了范围。我想从这个Safari实例中保存IndexedDB中的身份验证令牌,打开我的PWA,然后从我的PWA中的IndexedDB加载令牌。
我测试了这个实现。它可以在Safari独立版中正常工作(即我可以从IndexedDB中读取令牌),但是当我导航回我的PWA并尝试读取数据时,它并不存在。这表明商店无法共享,但我正在寻找更明确的答案。我发现在互联网搜索中没有任何迹象表明。
注意:iOS上的Safari和PWA之间不共享本地存储,会话存储和cookie,因此这些解决方案不起作用,因此必须使用IndexedDB
答案 0 :(得分:0)
您可以使用弹出窗口,而不是打开新标签,就像使用示例和源代码一样精美地解释here。
这里使用的关键思想是window.postMessage
,它允许窗口和框架跨域发送数据。