uni-app 小程序SDK在Remi Note 11pro上打开相册无图片显示,android13系统,无其他测试机验证,其他手机正常
uni-app 小程序SDK在Remi Note 11pro上打开相册无图片显示,android13系统,无其他测试机验证,其他手机正常
操作步骤:
手机 Redmi Note 11pro android13
直接运行UniMPDemo
点击图片API/image/image.vue或者上传图片upload-file.vue的界面,相册里面一张图片都没有
预期结果:
相册打开后能看到图片
实际结果:
相册打开后一张图片都没有
bug描述:
手机 Redmi Note 11pro android13
运行SDK-Android@4.24-20240903自带的UniMPDemo,点击小程序,点击图片API/image/image.vue或者上传图片upload-file.vue的界面,相册里面一张图片都没有
手机米8正常
对比测试
- 将uniapp直接标准基座运行到手机 Redmi Note 11pro 上,图片和上传图片的页面能够正常打开相册且正常显示图片
- 将uniapp打包成资源文件放到UniMPDemo中,同demo原先自带小程序资源一样,都是打开相册后一张图片都没有
录制了视频,但是你们这个咋传不视频,先传几张图片,并且我看android打印的结果,不知道是不是这里,还是也发一张日志的。
相关图片
信息 | 值 |
---|---|
产品分类 | uni小程序SDK |
手机系统 | Android |
手机系统版本号 | Android 13 |
手机厂商 | 小米 |
手机机型 | Redmi Note 11pro |
页面类型 | vue |
SDK版本号 | SDK-Android@4.24-20240903 |
已经可以了,不用看了。unisdk demo里面权限没有加。
请问需要添加哪几个权限,我也遇到了同样的问题
希望提供的demo也能跟着适配,下载的是最新的,提供的时候应该按照最新的机型测试下。
针对您提到的uni-app小程序SDK在Redmi Note 11 Pro(Android 13系统)上打开相册无图片显示的问题,这可能是由于多种原因导致的,包括但不限于权限问题、SDK兼容性问题或特定设备的系统行为。以下是一些可能的解决方案和相关的代码示例,您可以尝试逐一排查和修复。
1. 检查并请求相册权限
首先,确保您的应用已经正确请求并获得了访问相册的权限。在Android 6.0及以上版本中,需要在运行时请求权限。
// 在uni-app的main.js或相关页面脚本中
if (uni.getSystemInfoSync().platform === 'android') {
const permissions = uni.getSettingSync().authSetting['scope.writePhotosAlbum'] || uni.getSettingSync().authSetting['scope.readWritePhotosAlbum'];
if (!permissions) {
uni.authorize({
scope: 'scope.writePhotosAlbum', // 或 'scope.readWritePhotosAlbum',根据需要选择
success() {
console.log('权限获取成功');
// 尝试重新打开相册
},
fail() {
console.log('权限获取失败,请手动授予权限');
// 引导用户去设置中手动授予权限
uni.showModal({
title: '提示',
content: '需要您授予相册权限才能正常使用',
success(res) {
if (res.confirm) {
uni.openSetting();
}
}
});
}
});
}
}
2. 使用uni-app提供的相册API
确保您使用的是uni-app官方提供的相册API,并且按照文档正确调用。
uni.chooseImage({
count: 9, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
console.log(res.tempFilePaths); // tempFilePaths可以作为img标签的src属性显示图片
},
fail: function (err) {
console.error(err);
}
});
3. 兼容性处理
针对特定设备或系统版本的问题,有时需要在代码中添加兼容性处理。例如,可以尝试捕获异常并给出提示,或者尝试不同的API调用方式。
try {
// 尝试打开相册
uni.chooseImage({...});
} catch (error) {
console.error('打开相册失败:', error);
uni.showToast({
title: '打开相册失败,请稍后再试',
icon: 'none'
});
}
4. 调试和日志
最后,如果以上方法都没有解决问题,建议使用Android Studio等工具进行真机调试,查看日志信息,以便更准确地定位问题。
请注意,由于无法在其他设备上验证,以上解决方案可能需要根据实际情况进行调整。希望这些代码示例能帮助您解决问题。