这段代码有许多不足之处 可优化的地方有许多 亲各位大佬指教
毕竟对于mui理解有限 我就不对下面代码进行讲解
function choosePhoto() {
if (mui.os.plus) {
var buttonTit = [{
title: "拍照"
}, {
title: "从手机相册选择"
}];
plus.nativeUI.actionSheet({
title: "上传图片",
cancel: "取消",
buttons: buttonTit
}, function(b) { /*actionSheet 按钮点击事件*/
switch (b.index) {
case 0:
break;
case 1:
getImage(); /*拍照*/
break;
case 2:
galleryImg(); /*打开相册*/
break;
default:
break;
}
})
}
};
// 拍照获取图片
function getImage() {
//调用相机
plus.camera.getCamera().captureImage(function(e) {
//获取file对象entry
plus.io.resolveLocalFileSystemURL(e, function(entry) {
var path = entry.toLocalURL();
entry.file(function(file) {
vm.paths.push(path)
$('.getPhoto').val(file.name)
vm.fileName = file.name
//new plus.io.FileReader()方法
var reader = new plus.io.FileReader();
reader.onloadend = function(e) {
//e获取到对象 e.target.result是图片base64
upload(e.target.result, file.name)
}
reader.readAsDataURL(file);
})
}, function(e) {
mui.toast("读取拍照文件错误:" + e.message);
});
});
}
//从相册中选择图片
function galleryImg() {
// 从相册中选择图片
plus.gallery.pick(function(path) {
plus.io.resolveLocalFileSystemURL(path, function(entry) {
entry.file(function(file) {
var paths = entry.toLocalURL();
vm.fileName = file.name
vm.paths.push(paths)
$('.getPhoto').val(file.name)
var reader = new plus.io.FileReader();
reader.onloadend = function(e) {
upload(e.target.result, file.name)
}
reader.readAsDataURL(file);
})
}, function(e) {
plus.nativeUI.toast("读取拍照文件错误:" + e.message);
});
});
function upload(base64, fileName) {
var wt = plus.nativeUI.showWaiting();
mui.ajax({
type: "POST",
url: zfyurl + "/app/api/order/uploadFile",
data: {
base64: base64, //base64数据
fileName: fileName
},
dataType: "json",
success: function(response) {
plus.nativeUI.closeWaiting();
if (response.code == 'M000000') {
vm.enclosure = response.info
mui.toast("上传成功");
} else {
mui.toast("上传失败")
}
},
error: function(err) {
plus.nativeUI.closeWaiting();
console.log(JSON.stringify(err))
}