uni-app 鸿蒙切换页面显示为空白
uni-app 鸿蒙切换页面显示为空白
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
示例代码:
uni.request({
url: 'xxxx',
header: {
'Content-Type': 'application/json',
},
data: {},
method: 'GET',
dataType: 'json',
success: function(res) {
that.title = res.data.title
}
})
操作步骤:
使用鸿蒙系统 2.0,使用云打包后的app安装,接着打开软件,访问内容页,切换到微信,然后从微信再切换回app,内容全部丢了,只剩下框架。 注意:真机模拟没有问题,要云端打包
预期结果:
正常的内容页面
实际结果:
空白的内容页面
bug描述:
鸿蒙 2.0系统,就是切换页面,然后切换回来,标题,内容等,区别没了,变成了空白,只剩下框架,文章全部不见了。 真机模拟没有问题,云端打包后,出现问题。
更多关于uni-app 鸿蒙切换页面显示为空白的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app 鸿蒙切换页面显示为空白的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的鸿蒙系统应用生命周期管理问题。在鸿蒙系统(特别是早期版本)中,当应用切换到后台再返回时,可能会触发页面的重新初始化,导致数据丢失。
主要原因:
- 鸿蒙系统对后台应用的内存管理策略较为严格
- 页面切换时可能触发了页面的重新创建
- 数据未在页面生命周期中正确保存和恢复
解决方案:
- 使用本地存储保存关键数据:
// 在数据加载成功后保存到本地
uni.setStorageSync('pageData', res.data);
// 在页面onLoad或onShow中恢复数据
onShow() {
const savedData = uni.getStorageSync('pageData');
if (savedData) {
this.title = savedData.title;
// 恢复其他数据
}
}
- 优化页面生命周期管理:
export default {
data() {
return {
title: '',
// 其他数据
}
},
onLoad() {
this.loadData();
},
onShow() {
// 检查数据是否丢失,必要时重新加载
if (!this.title) {
this.loadData();
}
},
methods: {
loadData() {
uni.request({
url: 'xxxx',
success: (res) => {
this.title = res.data.title;
}
});
}
}
}
- 在manifest.json中配置鸿蒙适配:
{
"app-plus": {
"distribute": {
"os": {
"harmony": {
"minAPIVersion": 6,
"targetAPIVersion": 7
}
}
}
}
}

