场景
在小程序其它页面做了操作,数据发生改变,回到webview页面时需要更新webview里面的数据。由于小程序没有提供与webview的实时通信能力,因此刷新页面是个可考虑的做法。

方法一
最常见的做法,修改一下webview的url,加点query参数什么的,页面就会更新了。但是这会增加webview的浏览history,导致用户在后退的时候,会在webview内退到前一个页面,而不是退到小程序的前一个页面。

方法二
在小程序内调用wx.redirectTo(OBJECT)方法。这里填当前页面的url。其实是关闭当前页面重新打开,变相达到刷新webview的目的。但是由于重新打开了小程序页面,因此耗时会增加一些。并且,用户会看到前一个页面闪一下,然后出现新页面。

方法三
首先,让webview做条件渲染:

<web-view wx:if="{{ webviewUrl }}" src="{{ webviewUrl }}" />

需要刷新时,先把webviewUrl设为空,销毁当前webview。然后再把webviewUrl设为当前值。如下:

refreshWebview: function () {let tmpUrl = this.data.webviewUrl;this.setData({webviewUrl: ''});setTimeout(() => {this.setData({webviewUrl: tmpUrl})}, 100);
}

这样便可以在不影响导航栏历史的情况下刷新页面,也可以是跳转url。
这里setData之后,页面内容的更新应该是异步执行的,因此我们后一次修改url需要延时一小段时间,否则会出现error。
猜测setData后页面实际更新应该是在下一次的requestAnimationFrame,因此如果页面完全不卡顿可能16ms就可以了,保险起见,我设了100ms。

转载来源:https://www.php.cn/xiaochengxu-407648.html

微信小程序更新webview页面的三种方法相关推荐

  1. 微信小程序使用自定义字体的三种方法

    一.loadFontFace接口 小程序官方提供的接口,最便捷的加载字体的方法,不过限制颇多.必须https且同源,canvas等原生组件不支持.注意!!使用本地文件无效,必须使用网络地址. 官方文档 ...

  2. 微信小程序如何导入文件的一种方法

    微信小程序如何导入文件的一种方法,前三条才是有用的信息 1 环境 2 当你看到好的demo想在自己的小程序试试的时候 3 解决方式,进入本地文件夹直接复制 新的改变 功能快捷键 合理的创建标题,有助于 ...

  3. 微信小程序转二维码两种方法

    话不多说,直接上干货 第一种方法: 首先,你需要在电脑上打开https://mp.weixin.qq.com注册一个个人微信订阅号, 其次,登陆微信电脑版,微信号关注你注册的订阅号,这是重点 注册好了 ...

  4. 微信小程序刷新webview页面问题

    一.背景 我这边小程序的首页使用的是web-view组件.相当于直接引入了url,访问写好的h5页面即可.比着原生的小程序页面来说,方便了不少,但是刷新是个问题.这里记录一下刷新的方法. 二.微信小程 ...

  5. 微信小程序在web-view页面做分享,并且把分享的参数传递给小程序

    QQ技术交流群 173683866 526474645 欢迎加入交流讨论,打广告的一律飞机票 本demo实现的功能,微信小程序给h5传参,h5给小程序传参 实现代码: <!--index.wxm ...

  6. 微信小程序 使用特殊字体的两种方法

    微信小程序中如何使用特殊字体 我有两种方法: 1. 转base64格式 下载要使用的字体,建议TTF格式 打开网站 https://transfonter.org/ 转换格式,得到压缩包 将压缩包解压 ...

  7. 微信小程序使用和天气图标的一种方法

    和天气官方文档上介绍的npm导入后使用<i class="qi-xxx"></i>的方式在微信小程序上并不能使用.网上搜的博客大多也是将icon图标下载到本 ...

  8. 微信小程序实现比较功能的五种方法

    首先在index.wxml页面写一个测试页面 如图: 代码如下 接下来就是比较功能的实现 第一种方法 首先在两个input组件中用bindchange方法绑定事件处理函数,在button组件中用bin ...

  9. 微信小程序商品详情页面实现三个tab选项卡(商品参数、商品介绍、规格明细)

    前段书写 <view class="about"><!-- 循环展示出tap信息 --><block wx:for="{{swiperTit ...

最新文章

  1. mysql从另一张获取数据的方法
  2. C++笔试、面试题总结
  3. c语言int64编译时错误,错误:编译C程序时未在此作用域中声明uint64_t
  4. Vmware 下安装Arch Linux
  5. python进阶14文件路径(找不到文件)
  6. Thinking in Java 4th(Java编程思想第四版)文档、源码、习题答案
  7. win7下ngnix mysql php的安装_windows7下nginx +mysql+多版本PHP共存安装方法
  8. 【Rollo的Python之路】Python 队列 学习笔记 queue
  9. sqlserver功能选择_即将开课 | SQL Server 开发课程
  10. Django自身安全机制-XSS和CSRF
  11. 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》
  12. 用Markdown做日记和任务跟踪的DailyNotes
  13. 编程珠玑续版-chp2 关联数组-awk
  14. 52_LSTM及简介,RNN单元的内部结构,LSTM单元的内部结构,原理,遗忘门,输入门,输出门,LSTM变体GRU,LSTM变体FC-LSTM,Pytorch LSTM API介绍,案例(学习笔记)
  15. JS+CSS文章查看系统
  16. bootloader 解析
  17. 实体服务器搭建vps系统,vps系统和云服务器搭建
  18. vue + element-ui 聊天_vue网页版聊天Vue+ElementUI仿微信界面聊天实例
  19. 设备维护保养的主要工作内容是什么?
  20. HTML+CSS小米官网首页 (1页侧拉菜单)

热门文章

  1. 【Android Studio】小游戏 | 实现两个小动物随手指移动
  2. JAVA代码行数统计工具(是时候看看程序员真实的的代码量了)
  3. C++学校图书馆管理系统
  4. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(九):自动化攻击取证
  5. 质量保证(QA)和质量控制(QC)的区别
  6. swf to html5 movie maker,SWF to Video Converter Pro(Flash转换视频格式)
  7. (基于Packet Tracer 的校园网络设计方案(计算机网络与课程实验)(三)——Run Time 观察报文传输过程
  8. 基于C99规范,最全C语言预处理知识总结
  9. 数据库第一范式(图解)
  10. 第一章 算法设计与分析基础知识