HBuilderX4.57中使用uni-app的uni.chooseMedia调试包可以调用,打正式包点击不能调用

HBuilderX4.57中使用uni-app的uni.chooseMedia调试包可以调用,打正式包点击不能调用

开发环境 版本号 项目创建方式
Windows win11 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

手机系统:Android

手机系统版本号:Android 14

手机厂商:红米

手机机型:红米14C

页面类型:vue

vue版本:vue2

打包方式:云端

7 回复

官方可以回答下吗?

更多关于HBuilderX4.57中使用uni-app的uni.chooseMedia调试包可以调用,打正式包点击不能调用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


自己顶一下

同样问题, sourceType: [‘album’, ‘camera’],album和camera去掉一个就能正常调用了

我是用如下方法代替 uni.showActionSheet({ itemList: [‘拍摄’, ‘从相册选择’], success: _res => { uni.chooseMedia({ count: 1, mediaType: [‘image’], sourceType: _res.tapIndex === 0 ? [‘camera’] : [‘album’], sizeType: [‘original’], //original:原图;compressed:压缩图 success: res => { // 设置url的值,显示控件 this.imageSrc = res.tempFiles[0].tempFilePath; }, complete: () => { uni.hideLoading(); } }) }, });

云端打包已修复此问题,请使用HBuilderX4.57及以上版本重新提交云端打包(注意需要使用传统打包模式)。如果还有问题请提供appid

本地打包什么时候能修复一下

这是一个典型的正式包权限问题。在uni-app中,uni.chooseMedia需要相机和存储权限才能正常工作。调试包会自动获取这些权限,但正式包需要手动配置。

解决方案:

  1. 在manifest.json中确保已添加以下权限:
"android": {
    "permissions": [
        "<uses-permission android:name=\"android.permission.CAMERA\"/>",
        "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
        "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"
    ]
}
  1. 在代码中动态请求权限:
uni.authorize({
    scope: 'scope.camera',
    success() {
        uni.chooseMedia({
            // 配置参数
        })
    },
    fail() {
        uni.showToast({
            title: '需要相机权限',
            icon: 'none'
        })
    }
})
回到顶部