Vue.js 使用cordova camera插件调取相机
2017-11-03 09:10
831 查看
本文给出在vue.js里如何使用cordova的插件完成调取相机及图库,并完成图片上传的操作。
具体的操作步骤如下
注意的问题:
1、sourceType:
2、destinationType
调用的方法如下
imageURI是onSuccess函数的参数
至此,上传图片已经可以采用阿里云的追加上传完成了,具体的代码不附了
然后在components里加入Popup
最后在html里加入
其中,popupVisible控制是否弹出,position控制弹出的位置,里面的具体内容放在一个div里了
至此,完成了选择相机还是图库的操作。
具体的操作步骤如下
第一步:在cordova项目下安装cordova-plugin-camera插件
cordova plugin add cordova-plugin-camera
第二步:在需要调取相机的地方,加入相关的代码
cameraTakePicture: function (mySourceType) { navigator.camera.getPicture(this.onSuccess, this.onFail, { quality: 50, destinationType: Camera.DestinationType.DATA_URL, encodingType: Camera.EncodingType.JPEG, sourceType: mySourceType }) },
注意的问题:
1、sourceType:
PHOTOLIBRARY 或 0 打开照片库。 CAMERA 或 1 打开本机相机。 SAVEDPHOTOALBUM 或 2 打开已保存的相册。
2、destinationType
DATA_URL 或 0 返回base64编码字符串。 FILE_URI 或 1 返回图片文件URI。 NATIVE_URI 或 2 返回图片本机URI。
第三步:在上步完成图片拍摄之后,图片上传
由于后台采用的是阿里云的追加上传,接收的参数类型为File,因此,在上步得到的base64图片需要转换为File,dataURLtoFile: function (dataurl, filename) { var arr = dataurl.split(',') var mime = arr[0].match(/:(.*?);/)[1] var bstr = window.atob(arr[1]) var n = bstr.length var u8arr = new Uint8Array(n) while (n--) { u8arr = bstr.charCodeAt(n) } var blob = new Blob([u8arr], {type: mime}) blob.lastModifiedDate = new Date() blob.name = filename return blob }
调用的方法如下
var file = this.dataURLtoFile('data:image/jpeg;base64,' + imageURI, 'test.jpeg')
imageURI是onSuccess函数的参数
至此,上传图片已经可以采用阿里云的追加上传完成了,具体的代码不附了
第四步:使用mintUI的popup完成点击弹出选择相机还是图库打开
首先,import {Popup} from 'mint-ui'然后在components里加入Popup
最后在html里加入
<mt-popup v-model="popupVisible" position="bottom" style="width: 100%;"> <div> <div class='popup-item' @click='TakePictureType(1)'>相机</div> <div class='popup-item' @click='TakePictureType(2)'>图库</div> </div> </mt-popup>
其中,popupVisible控制是否弹出,position控制弹出的位置,里面的具体内容放在一个div里了
至此,完成了选择相机还是图库的操作。
第五步:打包apk,安装到手机上进行测试
以上就是在用cordova的camera插件进行图片上传的时候遇到的问题及解决步骤。相关文章推荐
- Vue.js 使用cordova camera插件调取相机
- cordova-plugin-camera相机插件使用
- [译]怎样在Vue.js中使用jquery插件
- 使用 Cordova 和 Vue.js 创建移动应用
- Vue.js插件axios——封装一个可以灵活使用的ajax
- Cordova+Angularjs+Ionic混合开发入门篇(四)—— 插件的简单使用
- Vue.js devtool插件安装后无法使用的解决办法【最简单有效的解决方法】
- Vue.js devtool插件安装后无法使用的解决办法
- 使用Cordova进行iOS开发 (第三方插件的使用:Camera插件)
- vue插件开发 使用pdf.js实现手机端在线预览pdf文档
- Vue.js devtool插件安装后无法使用的解决办法
- ionic插件基础(三)——插件原理及cordova相机插件的使用
- vue.js中使用vue-bootstrap-pagination 分页插件的问题
- cordova学习笔记_cordova插件的使用(camera)
- vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
- Vue+cordova camera插件采用dataurl格式导致内存问题的解决方案
- 怎样在Vue.js中使用jquery插件
- 在Vue中使用layer.js弹出层插件
- node.js及vue下使用chosen插件
- vue.js中图表插件vue2-highcharts的使用