点击上传图片按钮-打开手机相册-选择图片-确定-上传图片-上传成功
- 发布:2020-11-08 14:29
- 更新:2023-03-21 09:42
- 阅读:4044
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 1909
HBuilderX类型: 正式
HBuilderX版本号: 2.8.13
手机系统: Android
手机系统版本号: Android 10
手机厂商: vivo
手机机型: vivo x27
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
点击上传图片按钮-打开手机相册-选择图片-确定-上传图片-上传成功
点击上传图片按钮-打开手机相册-选择图片-确定-上传图片-上传成功
实际结果:
①点击上传图片按钮-打开手机相册-无法选择图片
②点击上传图片按钮-打开手机相册-闪退又重进进入app首页
①点击上传图片按钮-打开手机相册-无法选择图片
②点击上传图片按钮-打开手机相册-闪退又重进进入app首页
bug描述:
安卓机本地连接测试可用,云端打包后的apk,uni.chooseImage的相册不好用,拍摄没问题。
出现情况:①可以打开相册,但是无法显示本机图片;②点击从相册选择,即闪退重新进入app。
暖东 (作者)
解决问题方法
① 引入```javascript
import permision from "@/common/permission.js";
② method中写方法
```javascript
sourceTypeChange: function(e) {
this.sourceTypeIndex = parseInt(e.detail.value)
},
async checkPermission(code) {
let type = code ? code - 1 : this.sourceTypeIndex;
let status = permision.isIOS ? await permision.requestIOS(sourceType[type][0]) :
await permision.requestAndroid(type === 0 ? 'android.permission.CAMERA' :
'android.permission.READ_EXTERNAL_STORAGE');
if (status === null || status === 1) {
status = 1;
} else {
uni.showModal({
content: "没有开启权限",
confirmText: "设置",
success: function(res) {
if (res.confirm) {
permision.gotoAppSetting();
}
}
})
}
return status;
},
openpicpop: async function() {
// #ifdef APP-PLUS
// TODO 选择相机或相册时 需要弹出actionsheet,目前无法获得是相机还是相册,在失败回调中处理
let status = await this.checkPermission();
if (status !== 1) {
return;
}
// #endif
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有, 'compressed'
sourceType: ['album', 'camera'], //从相册选择
success: res => {
let that = this;
uni.showLoading({
title: '上传中'
});
uni.uploadFile({
url: 'xxxxxxxxxx', //访问后台 url
filePath: res.tempFilePaths[0], //要上传的文件对象
name: 'file', //文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
formData: {
'xxx1': xxx1,//往后台传的参数
},
success: res => {
res = JSON.parse(res.data);
if (res.code === 200) {
uni.hideLoading()
uni.showToast({
title: '上传成功',
icon: 'none'
});
} else {
uni.hideLoading()
uni.showModal({
title: '上传失败',
content: res.msg
});
}
}
});
},
fail: (err) => {
// #ifdef APP-PLUS
if (err['code'] && err.code !== 0 && this.sourceTypeIndex === 2) {
this.checkPermission(err.code);
}
// #endif
}
});
},
暖东 (作者)
可以看看是不是没写允许存储权限,我的是没有存储权限造成的
2020-11-12 19:44