小程序中使用两个WebView,Storage里面的数据不同步?
约定:
某一级专用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 则获取不到