简单聊两句

学习Vue+Cordova打包编译App,首先你要安装Cordova与vue,在这里本人就不说明了,自行看文档与搜索相关资料。

Cordova中文官网地址

Vue中文官网地址


第一步:首先在vue代码中加入cordova-plugin-camera的调用方法

navigator.camera.getPicture是调用camera的方法,他会附带三个参数,cameraSuccess是提供图像数据的回调函数。,cameraError是提供错误消息的回调函数,CameraOptions是可选参数来自定义相机设置参数(对象类型)。

 methods: {
//显示选择框事件
selectcamera: function() {
return this.sheetVisible=true;
},
//调用拍照
camera:function(){
//拍照设置参数
var cameraOptions={
quality: 50,
sourceType:1,
destinationType: Camera.DestinationType.FILE_URI,
};
//此处是官网提供的调用方法
navigator.camera.getPicture(this.cameraSuccess, this.cameraError, cameraOptions);
},
//调用相册
photo:function(){
//拍照设置参数
var cameraOptions={
quality: 50,
sourceType:0,
destinationType: Camera.DestinationType.FILE_URI,
};
navigator.camera.getPicture(this.cameraSuccess, this.cameraError, cameraOptions);
},
//调取成功触发事件
cameraSuccess:function(imageData){
return this.image=imageData;
},
//调取失败触发事件
cameraError:function(message){
alert(message);
},
},

上面的代码是整个调用的过程,注意下图是自定义相机设置参数的详细属性键值对说明

var cameraOptions = {
//这些参数可能要配合使用,如选择了sourcetype是0,destinationtype要相应的设置为1:【返回文件的URI(content://media/external/images/media/2 for Android)】
quality: 50, //相片质量0-100
destinationType: Camera.DestinationType.FILE_URI, //返回类型:DATA_URL= 0,返回作为 base64 編碼字串。 FILE_URI=1,返回影像档的 URI。NATIVE_URI=2,返回图像本机URI
sourceType: Camera.PictureSourceType.CAMERA, //从哪里选择图片:PHOTOLIBRARY=0(从设备相册选择图片),相机拍照=1,SAVEDPHOTOALBUM=2,0和1其实都是本地图库
allowEdit: true, //在选择之前允许修改截图
encodingType:Camera.EncodingType.JPEG, //保存的图片格式: JPEG = 0, PNG = 1
targetWidth: 200, //照片宽度
targetHeight: 200, //照片高度
mediaType:0, //可选媒体类型:圖片=0,默认值,只允许选择图片將返回指定DestinationType的参数。 視頻格式=1,允许选择视频,最终返回 FILE_URI(网址)。ALLMEDIA= 2,允许所有媒体类型的选择。
cameraDirection:0, //选择摄像头类型(前置摄像头或者后面的摄像头):Back= 0(后置),Front-facing = 1(前置)
popoverOptions: CameraPopoverOptions, //CameraPopoverOptions,iOS特供,从iPad的系统相册选择图片,指定popover的定位元素的位置箭头方向和参数
saveToPhotoAlbum: true //保存进手机相册
};

第二步 使用Vue打包到Cordova生成的项目中

首先你要改vue项目中config/index.js,修改其中的build打包模块,设置成打包到cordova生成的项目目录中的www文件,仿照下图设置,即可。

build: {
// Template for index.html
index: path.resolve(__dirname, '../../my_app1/www/index.html'), // Paths
assetsRoot: path.resolve(__dirname, '../../my_app1/www'),
assetsSubDirectory: '',
assetsPublicPath: '', /**
* SourceMap
*/
productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map', // Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'], // Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
}
}

第三步 使用Cordova安装cordova-plugin-camera插件与添加安卓平台,

进入Cordova项目中依次执行

cordova plugin cordova-plugin-camera

cordova platform add android@6.2.0

注意:这里为什么要添加安卓平台6.2.0呢,因为目前cordova-plugin-camera插件需要的安卓平台是小与6.3.0的,而你默认的添加的就是6.3.0。


第四步 使用Android studio 进行真机调试即可

这里就不具体写详细步骤了,这里会发现一个问题,再无任何报错的且代码都正常的时候,无法调用cordova-plugin-camera,

解决办法,要在vue项目中index.html中添加一个js,然后再重复上面步骤,应该就会解决此问题

<!DOCTYPE html>
<html> <head>
<meta charset="utf-8">
<meta name=viewport content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">
<title>vueapp2</title>
</head>
<script src="cordova.js"></script>
<body>
<div id="app">
</div>
<!-- built files will be auto injected -->
</body> </html>

Cordova结合Vue学习Camera的更多相关文章

  1. 教你用Cordova打包Vue项目

    现在国内越来越多的开发者使用Vue开发混合app,但是当大家开发完成过后才发现不知道该怎么将Vue项目打包成app. 据我现在的了解打包Vue项目目前流行的就是使用weex和cordova.weex是 ...

  2. 高性能Cordova App开发学习笔记

    高性能Cordova App开发学习笔记 文件结构 添加插件 构建准备 各个www的作用,prepare命令会将hello\www的内容会拷贝到platform下的wwww目录,知道该改哪里了吧?如果 ...

  3. Vue学习笔记-2

    前言 本文非vue教程,仅为学习vue过程中的个人理解与笔记,有说的不正确的地方欢迎指正讨论 1.computed计算属性函数中不能使用vm变量 在计算属性的函数中,不能使用Vue构造函数返回的vm变 ...

  4. Vue学习笔记-1

    前言 本文不是Vue.js的教程,只是一边看官网Vue的教程文档一边记录并总结学习过程中遇到的一些问题和思考的笔记. 1.vue和avalon一样,都不支持VM初始时不存在的属性 而在Angular里 ...

  5. Vue学习记录第一篇——Vue入门基础

    前面的话 Vue中文文档写得很好,界面清爽,内容翔实.但文档毕竟不是教程,文档一上来出现了大量的新概念,对于新手而言,并不友好.个人还是比较喜欢类似于<JS高级程序设计>的风格,从浅入深, ...

  6. Vue学习-01

    1.vue 学习 v-bind:title 数据绑定 v-if 判断显示或者隐藏 <div id="app-3"> <p v-if="seen" ...

  7. vue学习之vue基本功能初探

    vue学习之vue基本功能初探: 采用简洁的模板语法将声明式的将数据渲染进 DOM: <div id="app"> {{ message }} </div> ...

  8. vue学习第一篇 hello world

    计划近期开始学习vue.js.先敲一个hello wolrd作为开始. <!DOCTYPE html> <html lang="en"> <head& ...

  9. vue学习心得

    前言 使用vue框架有一段时间了,这里总结一下心得,主要为新人提供学习vue一些经验方法和项目中一些解决思路. 文中谨代表个人观点,如有错误,欢迎指正. 环境搭建 假设你已经通读vue官方文档(文档都 ...

随机推荐

  1. AJAX----注:借鉴

    Ajax的工作原理. Ajax的核心是JavaScript对象XmlHttpRequest.该对象在Internet Explorer5首次引入,它是一种支持异步请求的技术.简而言之,XmlHttpR ...

  2. 客户续费模型 逻辑回归 分类器 AdaBoost

    客户续费模型  逻辑回归 分类器  AdaBoost

  3. LeetCode 521 Longest Uncommon Subsequence I 解题报告

    题目要求 Given a group of two strings, you need to find the longest uncommon subsequence of this group o ...

  4. iptables 分析(三)

    原文:http://blog.chinaunix.net/uid-24207747-id-2622902.html find_target查到目标并加载成功,返回一个xtables_target型对象 ...

  5. IO调度算法的选择

    一) I/O调度程序的总结 1) 当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成. 2) 每个块设备都有它自己的队列. 3) I/O调度程序负责维护这些队列的顺序,以更有效 ...

  6. php判断是否为命令行模式

    function is_cli(){ : ; }

  7. 59.phpstudy升级Mysql的正确姿势

    phpstudy升级Mysql的正确姿势 phpstudy很糟心,不能选择mysql的版本,所以就强制升级. 下载mysql 首先要到官网上去下载你想要的mysql版本. 下载网址:Mysql官网地址 ...

  8. flask 在视图函数里操作数据库

    在视图函数里操作数据库 在视图函数里操作数据的方式和在python shell中的联系基本相同,只不过需要一些额外的工作.比如把查询结果作为参数 传入模板渲染出来,或是获取表单的字段值作为提交到数据库 ...

  9. P1636 Einstein学画画

    一笔画问题 P1636 Einstein学画画 如果一个图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路. 奇点:跟这个点相邻的边数目有奇数个的点 不存在奇数个奇点的 ...

  10. 禁止chrome浏览器的缓冲图片以及css等资源文件

    今天做了一个动画的效果,在ff下正常 但是到了谷歌下就不正常了,非常郁闷,看了下是缓存的问题 ,于是度娘了一下发现清理缓存的技巧还是满多的,这里借鉴一下别人的总结,人的大脑有限,下次忘记的时候还可以在 ...