详解如何探测小程序返回到webview页面
详解小程序返回到WebView页面的探测方法
在长沙网络推广的过程中,我们时常会遇到一种场景:在小程序中导航至某些页面修改用户的“收藏状态”或“身材细节”,但当用户点击返回按钮回到上一个页面时,这些修改并未同步显示。面对这种挑战,我们了一种技术上简单且操作便捷的方法。
经常会有QA同学反馈类似的问题,涉及小程序(WePY)和部分使用Vue的WebView页面。在有限的API条件下,我们曾尝试绑定blur和click事件来模拟事件处理,并从业务逻辑上寻找状态检查的时间点,但效果并不理想。
我们的解决方案简单而有效:
第一步,在小程序中的WebView绑定的url上加入时间戳。例如:
`
在onShow事件中更新url并加入当前时间戳:
```javascript
onShow() {
this.url = `${base_url}?ts=Date.now()`;
}
```
第二步,在Vue中监听query参数的变化。当url中的时间戳变化时,触发重新获取数据和渲染操作。
```javascript
watch: {
'$route.query.ts': function() {
this.fetchData();
this.patchRender(); // 获取数据并重新渲染变化的部分
}
}
```
这样,当小程序返回到WebView页面时,通过检测url中时间戳的变化,我们可以轻松触发事件并探测到返回操作。接下来,只需根据业务需求重新渲染可能变化的部分即可。
对于小程序部分每次都需要改变url的query参数的问题,虽然对Vue这样的优秀框架来说可能还有改进空间,但我们可以通过将相关代码写入mixin来简化操作。虽然对性能有一定影响,但在不需要的页面上只会增加一个观察者。
我们可以这样写mixin:
```javascript
Vue.use(function() {
Vue.mixin({
watch: {
'$route.query.ts': function() {
this.$options.onShow && this.$options.onShow.call(this);
}
}
});
});
```
在vue页面中,只需在onShow方法中执行业务操作,无需再单独写watch来监测路由变化。例如:
```javascript
onShow() {
this.fetchData();
this.patchRender();
},
methods: {
fetchData() { /获取数据的逻辑/ }
}
``` 狼蚁SEO优化推广希望与您一起分享和学习这种方法。如果您遇到类似问题,只需在小程序WebView的url中修改ts参数并在Vue文件中添加onShow方法即可轻松实现业务操作。本文内容到此结束,希望能对大家的学习有所帮助,也感谢大家支持狼蚁SEO的优化推广策略。 感兴趣的朋友可以关注我们的后续更新。
编程语言
- 详解如何探测小程序返回到webview页面
- JavaScript中数据类型转换总结
- JSP开发入门(二)----JSP语法的基本原理
- jQuery实现鼠标经过购物车出现下拉框代码(推荐
- js判断日期时间有效性的方法
- vue绑定的点击事件阻止冒泡的实例
- jQuery使用getJSON方法获取json数据完整示例
- 详解如何在angular2中获取节点
- Ztree新增角色和编辑角色回显问题的解决
- php导出excel格式数据问题
- 利用ASP实现在线生成电话图片效果脚本附演示
- thinkphp 中的volist标签在ajax操作中的特殊性(推荐
- php框架CodeIgniter主从数据库配置方法分析
- GridView选择记录同时confirm用户确认删除
- JavaScript中ES6 Babel正确安装过程
- 安装Mysql5.7.10 winx64出现的几个问题汇总