小程序中使用两个WebView,Storage里面的数据不同步?
发布于 7 年前 作者 weimo 9206 次浏览 来自 官方Issues

约定:

    某一级专用WebView:WebView1

    通用WebView:WebView2

小程序中一个一级页面使用WebView实现,即WebView1,在WebView1链接的web页面中,跳转至WebView2,但WebView1的load中,从Storage取出了“cookie”数据,而在WebView2的load中,无法获取该数据,疑似两个WebView对应的是不同的Storage,请问有没有办法让两个WebView共享Storage数据

2 回复

上代码片段吧

所有WebView页面处理url都会调用该函数

// webViewUtil.js
handleWebViewParams(url) {
        const urlParams = this.handleUrlStringToParams(url)
        const timestamp = Date.parse(new Date())
        urlParams.timestamp = timestamp
        urlParams.platform = 'wechat_mp'
        urlParams.app = 'ysy'
        if (getApp().globalData.token) {
            urlParams['#id-token'] = getApp().globalData.token
            delete urlParams.dzj_wx_mp_is_login
        } else { // 告诉后台我没有登录, 你快把 cookie 清掉
            urlParams['dzj_wx_mp_is_login'] = 'false'
        }
 
        const path = this.getPathFromUrl(url)
        const tempUrl = encodeURIComponent(this.handleParamsToUrlString(path, urlParams))
        return tempUrl
    }
// app.js
{
  globalData: {token: null}
  onShow: function() {
  this.globalData.token = wx.getStorageSync('key_token')
}
}

WebView1先行加载,getApp().globalData.token 调用后成功获取key_token的值,WebView2调用 getApp().globalData.token 则获取不到

回到顶部