项目中一个功能是拍照上传,开始想着不是很简单吗?不就是
<input type="file" id="file" accept="image/*;capture=camera" />
但是由于目前做的是混合app,在ios下是可以正常拍照的,安卓用扣扣,UC各种浏览器打开也都没问题,然而安卓一旦脱离这些浏览器,就只能选择相册中的照片不能拍照了
网上找了一堆input的兼容,但是都没有效果
后来找到了:.html
上代码:
拍照:
getCamera(e){var that=Camera().captureImage(function(e){console.log(e);solveLocalFileSystemURL(e, function(entry) {var path = LocalURL();ElementById("pic").src = path;}, function(e) { // ast("读取拍照文件错误:" + e.message); });});},
相册获取图片:
album(){var that=thisplus.gallery.pick(function(path){solveLocalFileSystemURL(path, function(entry) {var path = LocalURL();ElementById("pic").src = path;}, function(e) { // ast("读取拍照文件错误:" + e.message); });});},
上传:
upload(src){//服务端接口路径var that=this//获取图片元素 // var files = ElementById('headimg');// 上传文件// task.addData("name","photo");var wt=plus.nativeUI.showWaiting();var task=ateUpload(url,{method:"POST", priority: 60, timeout: 20, blocksize:100000000241024,retry:1},function(t,status){ //上传完成if(status==200){ // alert("上传成功:"sponseText);wt.close(); //关闭等待提示按钮}else{alert("上传失败");wt.close();//关闭等待提示按钮 }});//添加其他参数task.addFile(src,{key:"uploadFile"});task.start();}
经测试,此方式可兼容安卓,iOS,然而图片未压缩,上传速度慢,同样查看文档找到压缩代码:
resizeImage(src) {var that = this;plus.zippressImage({src: src,dst: src,overwrite: true,width: '270px', //这里指定了宽度,同样可以修改format: 'jpg',quality: 100 //图片质量不再修改,以免失真 },function(e) {plus.nativeUI.closeWaiting();that.upload(e.target); //上传图片, e.target存的是本地路径! },function(err) {plus.nativeUI.alert('未知错误!',function() { // mui.back(); });});},
以上。
转载于:.html
本文发布于:2024-02-03 02:02:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170689692647904.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |