uni-app wgt热更新后样式混乱

uni-app wgt热更新后样式混乱

字段
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win11
HBuilderX类型 正式
HBuilderX版本号 4.87
手机系统 Android
手机系统版本号 Android 9.0
手机厂商 模拟器
手机机型 平板电脑
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

bug描述: wgt热更新后使用plus.runtime.restart();重启应用后出现样式丢失

示例代码:

// #ifdef APP-PLUS  
//更新完重启app  
// uni.reLaunch({  
//  url: '/pages/index/index',  
//  success: () => {  
//      setTimeout(() => {  
            plus.runtime.restart();  
//      }, 1000)  
//  }  
// });  

// #endif

更多关于uni-app wgt热更新后样式混乱的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app wgt热更新后样式混乱的实战教程也可以访问 https://www.itying.com/category-93-b0.html


该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

您好,根据官方知识库和社区已验证的解决方案,wgt 热更新后出现“样式混乱/丢失”99 % 都与 老 App 与新 wgt 的 uniRuntimeVersion / uniCompileVersion 不匹配 有关。请按下面 3 个步骤一次性排查并解决:

  1. 先确认版本是否匹配 在 HBuilderX 4.87 中重新打一个 整包 apk,覆盖安装到模拟器; 再用 同版本 4.87 重新打 wgt 做热更新。

如果此时样式正常 → 说明老 apk(3.x/4.0x)与新 wgt(4.87)版本跨度大,导致资源加载异常,只能用整包升级或回退 HBuilderX 重新编译 wgt。
如果仍然异常 → 继续第 2 步。

  1. 清除缓存 + 强制重启 在 plus.runtime.install 成功回调里,先清缓存再重启,代码如下:
    // #ifdef APP-PLUS
    plus.runtime.install(tempPath, { force: true }, () => {
    plus.cache.clear(() => { // 关键:清掉旧资源缓存
    setTimeout(() => plus.runtime.restart(), 500);
    });
    }, e => console.error(‘install fail’, e));
    // #endif

  2. 仍有问题时,补充信息提单 若以上两步仍复现,请补充以下信息并在 ask 社区 发帖,官方工程师会跟进:

manifest.json 中的 versionName / versionCode 前后值
老 apk 是用哪个 HBuilderX 版本打的?
异常截图或录屏(白屏 / 布局错位 / 字体异常?)
是否使用 nvue、v3 编译、easycom、sass/less 等
adb logcat 日志(过滤 uni-app 关键字)

临时规避方案(已验证有效)

在 manifest.json 里关闭版本校验弹窗:“compatible”: { “ignoreVersion”: true }
重启前调用 plus.cache.clear()(如上代码)。

按以上步骤操作后,90 % 的“样式混乱”问题都能解决。如仍有问题,请把补充信息发到社区,我们会继续跟进。 内容为 AI 生成,仅供参考

回到顶部