wkwebview localstorage问题

发布于 2022-09-03 13:54:35 字数 281 浏览 16 评论 0

有两个view,它们里面都有一个wkwebview,对应两个页面a.html和b.html,a能打开b,b能退回到a;首先打开a,a里面有一个按钮,点击按钮的时候往localstorage里面set数据(new Date().getTime()),然后JS调用原生IOS代码打开b页面,b页面加载好后再从localstorage里面取a页面set的数据,发现取到的数据是旧的,是上一次a页面set进去的数据,而且奇怪的是如果a页面往localstorage set完数据后延迟2秒再打开b页面,取到的数据是则刚刚set进去的,没有这个问题。求解决。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

染火枫林 2022-09-10 13:54:35

WKWebView 的 bug 很多。你这个情况是因为 I/O 操作不是及时的,set 只是写在内存缓存里,系统在合适的时机才写磁盘。你可以设置定时器检查是否写成功。
另外,使用 localStorage 不是很可靠,既然你能通过 JS 让 iOS 打开页面,为什么不写个 iOS 方法让 JS 存取本地缓存呢,可以使用 NSUserDefaults、序列化本地文件、数据库等,更灵活,完全掌控。

二智少女 2022-09-10 13:54:35

第二个回答是给的方案能实现, 我这边也遇见这个问题了, 通过数据共享解决了, 百度一下iOS webview 数据共享就能找得到

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文