Vue基于Cordova调用相机
记录:Vue如何基于Cordova打包的apk调用相机
感谢优快云作者:michael_ouyang提供【cordova camera插件——摄像头插件的使用及上传图片】的思路
原文:https://blog.youkuaiyun.com/michael_ouyang/article/details/75085648
Vue层面代码
在某个.vue文件添加下面代码:
<template>
<div id="app">
<p>测试Vue调用相机功能</p>
<!-- 使用相机功能按钮 -->
<button @click="useCameraPlugin('SAVEDPHOTOALBUM')">从文件夹获取</button>
<button @click="useCameraPlugin('Camera')">使用相机</button>
<!-- 获取图片的展示 区域 -->
<img id="myImage" src="{{imgData}}" style="height: 200px;">
</div>
</template>
<script>
export default {
name: 'App',
el: '#app',
data(){
return{
imgData:"http://pic1.cxtuku.com/00/00/24/b916ebb736a7.jpg", //默认图片
//根据传值选择不一样的图片获取方式
sourceType:{ "SAVEDPHOTOALBUM":Camera.PictureSourceType.SAVEDPHOTOALBUM, "Camera" :Camera.PictureSourceType.Camera}
}
},
methods: {
// type:SAVEDPHOTOALBUM/Camera 分别是调用图库文件和调用相机
useCameraPlugin: function (type) {
navigator.camera.getPicture(onSuccess, onFail, {
quality: 50,
sourceType: this.sourceType[type], // 设置从图片库获取
destinationType: Camera.DestinationType.DATA_URL
})
function onSuccess(imageData) {
document.getElementById('myImage').src = "data:image/jpeg;base64," + imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}
},
watch:{
onSuccess: function (imageData) {
this.imgData = "data:image/jpeg;base64," + imageData
},
onFail:function (message) {
alert('Failed because: ' + message)
}
}
}
</script>
然后打包生成dist文件 ,指令:
npm run build
然后复制dist里的全部文件替代Cordova项目的www里的全部文件。
Cordova层面代码
只需要在控制台分别执行以下命令生成apk即可
//添加插件
cordova plugin add cordova-plugin-camera
//生成debug版本apk
cordova build android
插件添加成功的标志: