// 失败:绝对路径被拼接到 www 资源根下
uni.installWgt({
filePath: '/sdcard/Download/app.wgt',
fail: (e) => console.log('fail', e)
})
// 成功:unifile:// 形态
uni.installWgt({
filePath: 'unifile://cache/app.wgt',
success: () => console.log('install ok')
}) - 发布:2026-11-02 08:46
- 更新:2026-11-02 08:46
- 阅读:15
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 10
HBuilderX类型: 正式
HBuilderX版本号: 5.33.2026102401
手机系统: Android
手机系统版本号: Android 14
手机厂商: 模拟器
手机机型: Pixel 5(x86_64 模拟器 avd acc34)
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
- Android(模拟器)下载 wgt 到公共目录 /sdcard/Download/app.wgt;
- 调用 uni.installWgt({ filePath: '/sdcard/Download/app.wgt' });
- 观察:安装失败,路径被拼接到应用 www 资源根下(形如 <www根>/sdcard/Download/app.wgt),报找不到文件;
- 对照组:将 wgt 放入应用 cache 目录,以 unifile://cache/app.wgt 调用 uni.installWgt——安装成功。
- Android(模拟器)下载 wgt 到公共目录 /sdcard/Download/app.wgt;
- 调用 uni.installWgt({ filePath: '/sdcard/Download/app.wgt' });
- 观察:安装失败,路径被拼接到应用 www 资源根下(形如 <www根>/sdcard/Download/app.wgt),报找不到文件;
- 对照组:将 wgt 放入应用 cache 目录,以 unifile://cache/app.wgt 调用 uni.installWgt——安装成功。
预期结果:
绝对路径(/sdcard/...)应被识别为绝对路径并安装成功;或者文档明确写明 installWgt 的 filePath 只支持 unifile:// 形态。
绝对路径(/sdcard/...)应被识别为绝对路径并安装成功;或者文档明确写明 installWgt 的 filePath 只支持 unifile:// 形态。
实际结果:
/sdcard/ 绝对路径被改写拼接到 www 资源根下导致安装失败;必须改用 unifile://cache|sandbox/ 形态才能安装成功。HBuilderX 5.33.2026102401(Android 蒸汽模式)上仍复现。
/sdcard/ 绝对路径被改写拼接到 www 资源根下导致安装失败;必须改用 unifile://cache|sandbox/ 形态才能安装成功。HBuilderX 5.33.2026102401(Android 蒸汽模式)上仍复现。
bug描述:
uni.installWgt({ filePath }) 传入 /sdcard/... 形态的绝对路径时安装失败:该绝对路径被当作相对路径拼接到应用 www 资源根下,导致找不到 wgt 文件。必须改用 unifile://cache/ 或 unifile://sandbox/ 形态的路径才能安装成功。
关联 issue:#33361「convert2AbsFullPath不支持SD卡路径文件」标记为已发版 5.33.2026102401,但在该版本上 installWgt 场景下 /sdcard/ 绝对路径仍被拼接到 www 根下——疑似该修复未覆盖 installWgt 调用链,或存在回归。
建议二选一:
- convert2AbsFullPath 对以 / 开头的绝对路径原样返回(兼容绝对路径),installWgt 链路同样兼容;
- 文档明示 installWgt 的 filePath 只接受 unifile://cache|sandbox/ 形态。
0 个回复