在uni-app H5+环境中,使用plus.runtime.restart()
重启应用时,页面参数会丢失,这是正常现象,因为重启会重新初始化整个应用。若需在重启后返回上一个页面并保持参数,建议通过本地存储(如uni.setStorageSync
)在重启前保存关键参数,在应用启动时的onLaunch
生命周期中读取并处理。
具体实现步骤:
- 在调用
restart()
前,将当前页面路径和参数存入Storage:
uni.setStorageSync('restartData', {
path: '/pages/xxx/xxx',
query: { id: 123 }
});
plus.runtime.restart();
- 在
App.vue
的onLaunch
中判断并跳转:
onLaunch() {
const restartData = uni.getStorageSync('restartData');
if (restartData) {
uni.reLaunch({
url: `${restartData.path}?${Object.keys(restartData.query).map(key => `${key}=${restartData.query[key]}`).join('&')}`
});
uni.removeStorageSync('restartData');
}
}