vivo手机选择相册里面无图片 uni-app

vivo手机选择相册里面无图片 uni-app

操作步骤:

  • 客服审核

预期结果:

  • 能获取到图片

实际结果:

  • 未获取

bug描述:

const uploadCosUploadImg = ({ count = 1, extension = ['png', 'jpg'], formData = {}, callback = (data: any) => {} }) => {  
    uni.chooseImage({  
        count,  
        extension,  
        success: (res: any) => {  
            console.log(res, 'ddddddd');  
            uni.showLoading({  
                title: '图片上传中...'  
            });  
            res.tempFilePaths?.forEach((item: any) => {  
                uni.uploadFile({  
                    url: `xxx`,  
                    filePath: item,  
                    name: 'file',  
                    header: {  
                        token: loginStore.user_token  
                    },  
                    formData,  
                    success: (fileRes) => {  
                        uni.hideLoading();  
                        const { code, data } = JSON.parse(fileRes.data);  
                        if (code === 200) {  
                            uni.showToast({  
                                icon: 'none',  
                                title: '图片上传成功'  
                            });  
                            callback(data);  
                        } else {  
                            uni.showToast({  
                                icon: 'none',  
                                title: '图片上传失败'  
                            });  
                        }  
                    },  
                    fail: (err) => {  
                        uni.hideLoading();  
                        uni.showToast({  
                            icon: 'none',  
                            title: '图片上传失败'  
                        });  
                    }  
                });  
            });  
        }  
    });  
};

提审被拒,说授权后,相册中无图片,华为,应用宝…等等都过审核了

用工具查看apk,是包含了

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED"/>
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON"/>
<uses-permission android:name="com.asus.msa.SupplementaryDID.ACCESS"/>
<permission android:name="com.ecloudunion.qikang.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" android:protectionLevel="signature"/>
<uses-permission android:name="com.ecloudunion.qikang.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>  

图片

Image


更多关于vivo手机选择相册里面无图片 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html

12 回复

明确一下,是华为应用宝都审核通过,功能正常,只是 vivo 被拒了。实际测试 vivo 真机了吗是否正常?vivo 真机标准基座是否正常、打包出的产物自己测试是否正常

更多关于vivo手机选择相册里面无图片 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是的,只是vivo因为相册里面没有图片被拒了,我这边没有真机测试,但是社区里又很多vivo真机出现上架因为这个原因被拒了,只是他们没有找uni官方帮助

真机调试日志已上传

联系vivo的人工客服要一下录屏视频和能复现问题的手机详细信息。

你好, 请问这个有结果了吗

回复 CD_小C: 我这边验证了没问题,你发一下manifest.json和安装包,我这边对比一下配置文件。

回复 DCloud_Android_zl: 你QQ多少,我加你

回复 DCloud_Android_zl: 传到附件里了,帮忙看看!急

回复 CD_小C: 我在https://im.dcloud.net.cn/index.html#/,私聊你了,看一下

这是Android 13(API 33)及以上版本的权限适配问题。从manifest配置看,您已经声明了READ_MEDIA_IMAGES权限,但还需要在运行时动态请求。

问题分析:

  1. Android 13引入了新的媒体权限分级机制
  2. READ_EXTERNAL_STORAGE在Android 13+仅能访问部分媒体文件
  3. 需要单独请求READ_MEDIA_IMAGES权限来访问完整相册

解决方案:

在调用uni.chooseImage前添加权限检查:

// 检查并请求权限
const requestMediaPermission = async () => {
    // #ifdef APP-PLUS
    if (plus.os.version >= 13) {
        const permissions = ['android.permission.READ_MEDIA_IMAGES'];
        const status = await new Promise((resolve) => {
            plus.android.requestPermissions(permissions, resolve);
        });
        return status.deniedAlways.length === 0;
    } else {
        const status = await new Promise((resolve) => {
            plus.android.requestPermissions(['android.permission.READ_EXTERNAL_STORAGE'], resolve);
        });
        return status.deniedAlways.length === 0;
    }
    // #endif
    return true;
};

// 修改原函数
const uploadCosUploadImg = async ({ count = 1, extension = ['png', 'jpg'], formData = {}, callback = (data: any) => {} }) => {  
    const hasPermission = await requestMediaPermission();
    if (!hasPermission) {
        uni.showToast({
            icon: 'none',
            title: '需要相册权限才能选择图片'
        });
        return;
    }
    
    uni.chooseImage({
        // 原有代码保持不变
    });
};

同时确保manifest.json中正确配置权限:

{
    "app-plus": {
        "distribute": {
            "android": {
                "permissions": [
                    "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
                    "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>"
                ]
            }
        }
    }
}
回到顶部