微信小程序如何保存页面退出时的状态

追格官方小助手/ 2022年11月03日/ 小程序/ 浏览 3907

一个大表单页面,填了一半因为误点返回或者其他原因,退出了这个页面。

再次进入,上次填写的内容全不见了……


这个问题有没有解决办法?


微信小程序现在给出了答案。


退出页面时,在onSaveExitState回调函数中,可以保存当前页面的状态。


示例代码:


Page({
  onLoad: function() {
      console.log( this.exitState);  // 尝试获得上一次退出前 onSaveExitState 保存的数据
  },
  onSaveExitState: function() {
    var exitState = { myDataField: 'myData' } // 需要保存的数据
    return {
      data: exitState,
      expireTimeStamp: Date.now() + 24 * 60 * 60 * 1000 // 超时时刻
    }
  }
})


onSaveExitState 的返回值,data是要保存的数据,expireTimeStamp是超时时间(默认一天)


注意:


如果超过 expireTimeStamp ,保存的数据将被丢弃,且冷启动时不遵循 restartStrategy 的配置,而是直接从首页冷启动。


expireTimeStamp 有可能被自动提前,如微信客户端需要清理数据的时候。


在小程序存活期间, onSaveExitState 可能会被多次调用,此时以最后一次的调用结果作为最终结果。


在某些特殊情况下(如微信客户端直接被系统杀死),这个方法将不会被调用,下次冷启动也不遵循 restartStrategy 的配置,而是直接从首页冷启动。

发表评论

暂无评论,抢个沙发...

客服 工单