收藏
回答

救命啊!救救狗命吧!


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


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


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




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



最后一次编辑于  2019-07-26
回答关注问题邀请回答
收藏

6 个回答

  • 何以为歌
    何以为歌
    2019-07-27

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

    2019-07-27
    有用 1
    回复
  • 林学
    林学
    2019-07-30

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

    2019-07-30
    有用
    回复 1
    • 笨笨
      笨笨
      2019-07-30
      工控学,了解下
      2019-07-30
      回复
  • 笨笨
    笨笨
    2019-07-27

    谢谢大家的答复,现在改用微信提供的文件读写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---->')

             

             }

           })





    2019-07-27
    有用
    回复 2
    • 兰昊
      兰昊
      2019-07-29
      骚呢 兄弟
      2019-07-29
      回复
    • 笨笨
      笨笨
      2019-07-29回复兰昊
      黑猫白猫抓到老鼠就是猫(方法随意,需求实现就行!)
      2019-07-29
      回复
  • 2随
    2随
    2019-07-26

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

    2019-07-26
    有用
    回复 8
    • 笨笨
      笨笨
      2019-07-26
      没网络 我是不会去获取openid的 , 而是用以前存储的(微信用户对于一个小程序openid是唯一的)
      2019-07-26
      回复
    • 2随
      2随
      2019-07-26回复笨笨
      没有网络。你拿到openid发给谁?
      2019-07-26
      回复
    • 笨笨
      笨笨
      2019-07-26
      给设备 (这都不是重点啊,重点是断网情况下如何取到上次存储的openid)
      2019-07-26
      回复
    • 笨笨
      笨笨
      2019-07-26回复笨笨
      蓝牙传给设备
      2019-07-26
      回复
    • 2随
      2随
      2019-07-26回复笨笨
      为什么你设备有网络 而手机没有?
      2019-07-26
      回复
    查看更多(3)
  • ctzl
    ctzl
    2019-07-26

    缓存不行?

    2019-07-26
    有用
    回复 1
    • 笨笨
      笨笨
      2019-07-26
      我按我的思路 有网络时set 保存,退出小程序,关闭网络,进去小程序 在get 结果空
      2019-07-26
      回复
  • 拾忆
    拾忆
    2019-07-26

    为什么 set/getStorageSync 不行?

    2019-07-26
    有用
    回复 8
    • 笨笨
      笨笨
      2019-07-26
      有网络时,用set 把openid 存起来, 然后退出小程序,网络关掉,进入小程序,去get 没数据啊
      2019-07-26
      回复
    • 拾忆
      拾忆
      2019-07-26
      我是不信的,在小程序未销毁的情况下缓存数据肯定都在的。你可以写个能复现问题的代码片段。
      2019-07-26
      回复
    • 笨笨
      笨笨
      2019-07-26
      小程序销毁了 这是关键 【应用场景就是现在有网络了,初始化一下,把openid存起来,然后就退出去了,隔了几天在没有网络的环境下要用这个小程序,于是乎在点进去,匹配openid去操作】
      2019-07-26
      回复
    • 笨笨
      笨笨
      2019-07-26回复拾忆
      我刚上传了个图片,就是整个操作,应该是杀死 了小程序
      2019-07-26
      回复
    • 拾忆
      拾忆
      2019-07-26
      隔几天这个不现实~
      2019-07-26
      回复
    查看更多(3)
登录 后发表内容