基础库 2.7.4 开始支持,低版本需做兼容处理。
每当小程序可能被销毁之前,页面回调函数 onSaveExitState
会被调用。如果想保留页面中的状态,可以在这个回调函数中“保存”一些数据,下次启动时可以通过 exitState
获得这些已保存数据。
代码示例:
{
"restartStrategy": "homePageAndLatestPage"
}
Page({
onLoad: function() {
var prevExitState = this.exitState // 尝试获得上一次退出前 onSaveExitState 保存的数据
if (prevExitState !== undefined) { // 如果是根据 restartStrategy 配置进行的冷启动,就可以获取到
prevExitState.myDataField === 'myData'
}
},
onSaveExitState: function() {
var exitState = { myDataField: 'myData' } // 需要保存的数据
return {
data: exitState,
expireTimeStamp: Date.now() + 24 * 60 * 60 * 1000 // 超时时刻
}
}
})
onSaveExitState
返回值可以包含两项:
字段名 | 类型 | 含义 |
---|---|---|
data | Any | 需要保存的数据(只能是 JSON 兼容的数据) |
expireTimeStamp | Number | 超时时刻,在这个时刻后,保存的数据保证一定被丢弃,默认为 (当前时刻 + 1 天) |
一个更完整的示例:在开发者工具中预览效果