先来形容一下需要
咱们有一个小程序,外面用 <web-view> 嵌入一个 H5 页面,H5 页面第一个页面是一个登陆页面,有存储和读取本地 H5 缓存 localStorage,判断 localStorage 中 token 是否存在,如果存在,则间接进入下一个页面,不存在则留在本页,须要用户执行登陆操作
再来形容一下问题
昨天在休假,共事忽然发消息来说,局部 iOS 机型无奈记住登陆状态,并且在第二次进入登录页面后,图形验证码无奈展现进去,点击按钮,会发送理论申请进来,然而 UI 款式没有任何变动
问题合成
依据共事的反馈,下面的问题能够分类如下:
(1)无奈记住登陆状态的问题,那就是 token 在第二次进入 H5 后获取不到
(2)UI 阻塞的问题
问题解决
(1)查了材料,token 获取不到,是因为局部机型在敞开小程序时主动清空 webview 的 storage 缓存所致。要解决的话须要将局部缓存放到小程序这边来。
(2)UI 阻塞的问题,先查看了下,H5 中获取图形验证码的逻辑是在 created 生命周期中做的,因为小程序对 H5 页面做了缓存,created 生命周期仿佛不会被执行?将 created 生命周期改为 mounted 之后,这个问题就解决了
问题延长
H5 公布版本之后,发现小程序这边仍然没有更新内容,思考到小程序将 H5 页面内容缓存了,就将小程序中 <web-view> 的 src 中链接的 url 改为加了工夫戳后缀的 url,这样的话每次进入的时候 url 都不一样,就会从新获取 h5 资源。解决了之后,设置 — 通用 – 存储空间 – 清理缓存 革除一下缓存,问题果然解决了