小程序怎样更新webview页面

  介绍

这篇文章主要介绍小程序怎样更新webview页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

场景

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

方法一

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

方法二

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

方法三

首先,让webview做条件渲染:

& lt; web-view 天气:如果=皗{,webviewUrl }}“, https://www.yisu.com/zixun/src=" {{webviewUrl}} "/>

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

,,refreshWebview:, function  (), {   ,,,let  tmpUrl =, this.data.webviewUrl;   ,,,this.setData ({   ,,,,,webviewUrl:, & # 39; & # 39;   ,,,});   ,,,setTimeout((),=祝辞,{   ,,,,,this.setData ({   ,,,,,,,webviewUrl: tmpUrl   ,,,,,})   ,,,},,100);   以前,,}

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

小程序怎样更新webview页面