最近,公司小程序项目功能更新,部分功能复测,让某些兼容性问题再次暴露在我的面前,特此发出来给暂未遇到这个问题的开发者,提供一些思路。
onShow表现
这个事件钩子,在页面重新显示的时候触发,无论是否重新加载,对于一些数据更新和获取,提供了稳定的处理方案。但是,假如当前页面有选择图片上传的功能或者文件上传,选择文件后,页面会进入onShow
钩子,且这种情况安卓是必然触发,IOS系统,身边设备有限,目前看是不会触发。
会有哪些问题?
比如当前页面是一个用户信息表单,你默默地填完所有资料,接着上传图片后,发现刚刚上传的图片被重置为之前的图了,同时其它字段可能也恢复了。
舍弃onShow OR 如和解决
首先,进入页面的场景一般分两种,第一种正常跳转;第二种返回到页面,这种情况要看业务是需要刷新数据还是保持不变,保持页面不变的情况下就应该舍弃使用 onShow
,转而使用onLoad
等一次性方法钩子;
另外,非要使用onShow
,则可以用好存储机制去记录历史操作,比如在onHide、onUnload
中,合理的做好标记,还要区别正常的页面卸载期间,一移出这个标记,当页面进入onShow
阶段,根据标记去判断是否执行初始化的代码,是否是页面正常返回进入的,还可以考虑加点标记到页面地址上。
总结
我一直希望腾讯官方能够解决这个“问题”,然而,不如信我是秦始皇,只要Demo没问题,我的框架就没问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。