uni-app uni.chooseMedia 安卓10版本 在选择图片后闪退
uni-app uni.chooseMedia 安卓10版本 在选择图片后闪退
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | Windows 11 | CLI |
产品分类:uniapp/App
PC开发环境操作系统:Windows
手机系统:Android
手机系统版本号:Android 10
手机厂商:华为
手机机型:HUAWEI HWBLA
页面类型:vue
vue版本:vue3
打包方式:云端
CLI版本号:4.36
示例代码:
uni.chooseMedia({
count: 1,
mediaType: ["image"],
sourceType: ["album"],
sizeType: ["compressed"],
success(res) {
const path = res.tempFiles?.[0]?.tempFilePath;
if (!path) return reject(false);
resolve(path);
},
fail: function (e) {
reject(e);
},
});
操作步骤:
manifest中配置
"excludePermissions" : [
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
在安卓10中调用
uni.chooseMedia({
count: 1,
mediaType: ["image"],
sourceType: ["album"],
sizeType: ["compressed"],
success(res) {
const path = res.tempFiles?.[0]?.tempFilePath;
if (!path) return reject(false);
resolve(path);
},
fail: function (e) {
reject(e);
},
});
`
更多关于uni-app uni.chooseMedia 安卓10版本 在选择图片后闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app uni.chooseMedia 安卓10版本 在选择图片后闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个闪退问题可能是由于Android 10的存储权限策略变更导致的。在Android 10中引入了Scoped Storage机制,需要注意以下几点:
- 不要排除READ_MEDIA_IMAGES权限,这个权限在Android 10+是必须的:
"excludePermissions" : [
// 移除这两行
// "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
// "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
- 确保在调用chooseMedia前已经获取了存储权限:
// 先检查并请求权限
const res = await uni.getSetting()
if (!res.authSetting['scope.writePhotosAlbum']) {
await uni.authorize({
scope: 'scope.writePhotosAlbum'
})
}
- 华为机型可能有自己的权限管理,建议在manifest.json中添加以下配置:
"android": {
"permissionExternalStorage": {
"request": "once",
"prompt": "应用需要访问相册以选择图片"
}
}
- 如果问题仍然存在,可以尝试使用chooseImage替代:
uni.chooseImage({
count: 1,
sourceType: ['album'],
success(res) {
const path = res.tempFilePaths[0]
// ...
}
})