uni-app uni.chooseImage 获取相册app闪退
uni-app uni.chooseImage 获取相册app闪退
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:win10
HBuilderX类型:Alpha
HBuilderX版本号:4.81
手机系统:Android
手机系统版本号:Android 10
手机厂商:vivo
手机机型:vivo S7e
页面类型:vue
vue版本:vue3
打包方式:离线
项目创建方式:HBuilderX
示例代码:
<template>
<view class="content">
<image class="logo" src="/static/logo.png"></image>
<view class="text-area">
<text class="title">测试获取相册</text>
</view>
<button [@click](/user/click)="getImage">获取相册</button>
</view>
</template>
<script>
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
methods: {
getImage(){
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: function (res) {
console.log(JSON.stringify(res.tempFilePaths));
}
})
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.logo {
height: 200rpx;
width: 200rpx;
margin-top: 200rpx;
margin-left: auto;
margin-right: auto;
margin-bottom: 50rpx;
}
.text-area {
display: flex;
justify-content: center;
}
.title {
font-size: 36rpx;
color: #8f8f94;
}
</style>
更多关于uni-app uni.chooseImage 获取相册app闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html
8 回复
也不是所有都有问题,目前发现vivo手机上有此现象
附件为操作视频
离线打包有问题,调试是否正常、云打包是否正常,总结下规律,vivo 手机之外还有复现吗
回复 DCloud_UNI_OttoJi: 自定义基座,标准基座,云端打包都有问题。华为p40没有此现象
回复 DCloud_UNI_OttoJi: vivo手机android 必现,不用总结规律
这是一个典型的权限配置问题。在Android 10及以上版本中,访问相册需要动态申请存储权限,否则会导致应用闪退。
在你的manifest.json文件中需要配置以下权限:
{
"app-plus": {
"distribute": {
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"
]
}
}
}
}
同时,在调用chooseImage前需要先申请权限:
getImage() {
// 先申请存储权限
uni.authorize({
scope: 'scope.writePhotosAlbum',
success: () => {
uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album'],
success: function (res) {
console.log(JSON.stringify(res.tempFilePaths));
}
})
},
fail: () => {
uni.showToast({
title: '需要相册权限',
icon: 'none'
})
}
})
}


