uni-app 小程序SDK在Remi Note 11pro上打开相册无图片显示,android13系统,无其他测试机验证,其他手机正常

发布于 1周前 作者 sinazl 来自 Uni-App

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正常

对比测试

  1. 将uniapp直接标准基座运行到手机 Redmi Note 11pro 上,图片和上传图片的页面能够正常打开相册且正常显示图片
  2. 将uniapp打包成资源文件放到UniMPDemo中,同demo原先自带小程序资源一样,都是打开相册后一张图片都没有

录制了视频,但是你们这个咋传不视频,先传几张图片,并且我看android打印的结果,不知道是不是这里,还是也发一张日志的。

相关图片

Image 1 Image 2 Image 3

信息
产品分类 uni小程序SDK
手机系统 Android
手机系统版本号 Android 13
手机厂商 小米
手机机型 Redmi Note 11pro
页面类型 vue
SDK版本号 SDK-Android@4.24-20240903

4 回复

已经可以了,不用看了。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等工具进行真机调试,查看日志信息,以便更准确地定位问题。

请注意,由于无法在其他设备上验证,以上解决方案可能需要根据实际情况进行调整。希望这些代码示例能帮助您解决问题。

回到顶部