一个大表单页面,填了一半因为误点返回或者其他原因,退出了这个页面。
再次进入,上次填写的内容全不见了……
这个问题有没有解决办法?
微信小程序现在给出了答案。
退出页面时,在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 的配置,而是直接从首页冷启动。
暂无评论,抢个沙发...