webview---小程序-----webivew 返回时如何同步状态?
发布于 3 年前 作者 jing46 8063 次浏览 来自 问答

在微信小程序中的webview页面A,使用wx.navigateTo跳转到小程序页面B,在小程序页面B上完成一键登录逻辑完了之后携带参数跳转到webview页面C,这时候webview页面C请求一个接口完成后要逐步返回到webview页面A,页面A的状态不会同步,无法拿到刚才页面C的接口里的数据,要怎么让它同步?

1.如果去刷新webview页面A,要怎么刷新,我目前尝试了网上的刷新方案,总是会刷新到页面C上,而不是A

2.如果在页面B返回A时携带参数,要怎么携带,目前使用wx.navigateBack来返回

3 回复

可以用this.options来获取小程序页面中的参数,然后a页面通过传入的参数来进入指定的页面,代码大概像下面这样

js

data: {
    src:''  // 这里填写页面默认的地址
  },

  onLoad: function (options) {
    console.log(options);
    if(options && options.src != undefined){    
      let src = decodeURIComponent(options.src);
      src = src.replace(/http:\/\//, "https://");
      this.setData({
        src: src
      })
    }
  },

wxml

<web-view src="{{src}}"></web-view>

在b页面登录获取参数后,用wx.reLaunch来进入a页面,参数传在src内,注意需要encode下哦!

wx.reLaunch({
	url: '/pages/index/index?src=' + src,
})
小程序页面B ==》 webview页面A    可以在url带上参数  wx.navigateTo({url: '/pages/webview?参数'})  如果有这个参数就刷新呗

页面A wx.redirect -》 页面B wx.redirect 页面C -》wx.redirect +参数至 页面A

回到顶部