ios - wkwebview localstorage问题

查看:716
本文介绍了ios - wkwebview localstorage问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

有两个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进去的,没有这个问题。求解决。

解决方案

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

这篇关于ios - wkwebview localstorage问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆