uni-app plus.gallery.pick 返回的资源路径错误,file协议头错误
uni-app plus.gallery.pick 返回的资源路径错误,file协议头错误
信息 | 内容 |
---|---|
产品分类 | HTML5+ |
HBuilderX版本号 | 4.36 |
手机系统 | iOS |
手机系统版本号 | iOS 18 |
手机厂商 | 苹果 |
手机机型 | 15 |
打包方式 | 云端 |
示例代码:
plusChoseVideo = (param) => {
return new Promise((resolve, reject) => {
plus.gallery.pick(function (e) {
const res = {
code: 1,
list: e
}
console.log(res)
resolve(res)
}, function (err) {
reject(err)
}, {filter: 'video', multiple: true, ...param})
})
}
返回的res中的路径file多次拼接
操作步骤:
必现
预期结果:
file://var/mobile/Containers/Data/Application/CB5F7291-1E62-49B5-B522-373739F140D7/Documents/Pandora/apps/CB7E011AB0B54EA3F3F49AF3E6D317E8/doc/gallery_temp/IMG_5080_origin.mp4
实际结果:
file:///file:/var/mobile/Containers/Data/Application/CB5F7291-1E62-49B5-B522-373739F140D7/Documents/Pandora/apps/CB7E011AB0B54EA3F3F49AF3E6D317E8/doc/gallery_temp/IMG_5080_origin.mp4
bug描述:
plus.gallery.pick返回的资源路径file协议拼接错误,多次拼接file协议头
更多关于uni-app plus.gallery.pick 返回的资源路径错误,file协议头错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
打自定义基座试下
更多关于uni-app plus.gallery.pick 返回的资源路径错误,file协议头错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
是自定义基座哈,线上稳定运营的项目,在最近一次HBuilder e.3.6更新过后云打包出现的,我们还是发热更新修复的线上bug。刚刚测试了一下问题还没修复
HBuilder 4.36
针对你提到的 uni-app
中 plus.gallery.pick
返回的资源路径错误,特别是 file
协议头错误的问题,这通常是由于路径处理不当或者环境配置问题导致的。以下是一个示例代码,展示了如何使用 plus.gallery.pick
并正确处理返回的路径。同时,我也会提及一些可能导致 file
协议头错误的原因和解决方案。
示例代码
// 调用相册选择图片
plus.gallery.pick({
success: function (event) {
var filePaths = event.files; // 获取选中的文件路径数组
if (filePaths.length > 0) {
var filePath = filePaths[0]; // 获取第一张图片的路径
// 正确的文件路径应该是以 'file://' 开头的
console.log("Selected file path:", filePath);
// 示例:显示图片
var img = document.createElement('img');
img.src = filePath;
document.body.appendChild(img);
// 如果需要进一步处理文件,比如上传,可以使用以下代码
// 注意:这里只是示例,实际上传逻辑需要根据你的需求来实现
var task = plus.uploader.createUpload(yourUploadUrl, {
method: "POST",
chunked: false
}, function (t, status) {
if (status == 200) {
console.log("Upload succeeded:", t.responseText);
} else {
console.error("Upload failed with status:", status);
}
});
task.addFile(filePath, { key: 'file' });
task.start();
} else {
console.log("No file selected.");
}
},
fail: function (error) {
console.error("Failed to pick file:", error);
}
});
可能的原因及解决方案
-
路径格式错误:确保返回的路径是以
file://
开头的。如果不是,可能是路径处理不当或者环境配置有误。 -
环境差异:
uni-app
在不同平台上(如 H5、小程序、App)的行为可能有所不同。确保在 App 环境下测试,因为plus
API 仅在 App 环境下有效。 -
权限问题:确保应用有访问相册和文件系统的权限。在
manifest.json
中配置相关权限。 -
路径转换:如果需要在 Web 环境中模拟或测试,可能需要将路径转换为 Web 可访问的格式,但这通常不适用于
plus
API 返回的路径。 -
API 版本:检查
uni-app
和HBuilderX
的版本,确保它们支持你的代码中使用的所有 API 和特性。
以上代码和解决方案应该能帮助你解决 plus.gallery.pick
返回的资源路径错误问题。如果问题依旧存在,建议检查 uni-app
的官方文档或社区论坛获取更多帮助。