救命啊!救救狗命吧!
发布于 7 年前 作者 gyin 5934 次浏览 来自 官方Issues

小程序有网络时,获取openid存起来,啥时候没网络了,照样可以获取到openid, 就这一个需求,找了好多资料都没解决,快挂了!

小程序在app.js 里面的全局  和  set/getStorageSync 缓存 都试了,不行,

还有其他好用(能行)的方法么?

请问如下所示我点击小程序右侧的×   是不是把小程序杀了,那他的缓存 还有么?

6 回复

没网路了你获取到openid有什么用。 难道你的小程序是一个服务器,自给自足

为什么 set/getStorageSync 不行?

set/getStorageSync 只要小程序没有被移除,没有清除,就一直会存在 ,移除小程序后一段时间也不会被清除,大概两三分钟,大概是微信内部的gc回收机制,移除小程序后立即重新搜索再进去,缓存还是存在的

谢谢大家的答复,现在改用微信提供的文件读写API解决了

代码如下

// 写入openid:


let fsm = wx.getFileSystemManager();

       fsm.writeFile({
         filePath: wx.env.USER_DATA_PATH + '/openid.txt',
         data: res.data.openid ,
         encoding: 'utf8',
         success: res => {
           console.log('openid 写入文件成功',res)
         },
         fail: res => {
           console.log('openid 写入文件失败')
         }

       })


// 断网时取出openid

let fsm = wx.getFileSystemManager();

       fsm.readFile({

         filePath: wx.env.USER_DATA_PATH + '/openid.txt',

         encoding: 'utf8',

         success: function(res) {

           console.log('success--->', res.data)

         },

         fail: function(res) {

           console.log('fail---->')

         

         }

       })





无法理解为什么会有这样的需求,哈哈

缓存不行?

回到顶部