Using the Cordova Camera API
使用ionic开发一款android或ios应用,估计少不了使用到Camera API,这里记录下使用过程。
创建空的ionic应用
ionic start myTabs tabs
通过cd demo命令,可以看到已经为我们创建了多个文件夹,如下所示:
ls -l
total 48
-rw-r--r-- 1 nancy staff 2786 6 5 01:14 README.md
-rw-r--r-- 1 nancy staff 125 6 5 01:14 bower.json
-rw-r--r-- 1 nancy staff 1062 6 5 01:14 config.xml
-rw-r--r-- 1 nancy staff 1353 6 5 01:14 gulpfile.js
drwxr-xr-x 4 nancy staff 136 6 5 01:14 hooks
-rw-r--r-- 1 nancy staff 73 6 5 01:12 ionic.project
-rw-r--r-- 1 nancy staff 356 6 5 01:14 package.json
drwxr-xr-x 3 nancy staff 102 6 5 01:14 platforms
drwxr-xr-x 3 nancy staff 102 6 5 01:14 plugins
drwxr-xr-x 3 nancy staff 102 6 5 01:14 scss
drwxr-xr-x 6 nancy staff 204 6 5 01:14 www
安装并使用Camera插件
在plugins文件夹中放着的是各个使用的插件,通过命令cordova plugin add 插件名
来安装我们所需插件,安装Camera插件:
cordova plugin add org.apache.cordova.camera
使用Camera插件api
function takePicture() {navigator.camera.getPicture(function(imageURI) {// imageURI is the URL of the image that we can use for// an <img> element or backgroundImage.}, function(err) {// Ruh-roh, something bad happened}, cameraOptions);
}
创建service
在文件www/js/services.js中,通过添加angular service提供拍照服务:
.factory('Camera', ['$q', function($q) {return {getPicture: function(options) {var q = $q.defer();navigator.camera.getPicture(function(result) {// Do any magic you needq.resolve(result);}, function(err) {q.reject(err);}, options);return q.promise;}}
}])
其中,插件Camera说明,详见这里。
修改Controller,添加拍照按钮事件
我们修改Controllers.js中第一个controller(DashCtrl),如下:
.controller('DashCtrl', function($scope, Camera) {$scope.getPhoto = function() {Camera.getPicture().then(function(imageURI) {console.log(imageURI);$scope.lastPhoto = imageURI;}, function(err) {console.err(err);}, {quality: 75,targetWidth: 320,targetHeight: 320,saveToPhotoAlbum: false});};
})
其中,quality、targetWidth、targetHeight等参数说明,见这里。
使用AngularJS Whitelisting
添加config:
module.config(function($compileProvider){
$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|mailto|file| tel):/);
})
修改html,添加拍照按钮和返回照片
在www/templates/tab-dash.htm中添加拍照按钮和事件,并返回照片信息,显示:
<ion-view title="Dashboard"><ion-content class="has-header padding"><h1>Dash</h1><button ng-click="getPhoto()" class="button button-block button-primary">Take Photo</button><img ng-src="{{lastPhoto}}" style="max-width: 100%"></ion-content>
</ion-view>
在android下运行
执行命令:
ionic build android
ionic run android
运行结果:
转自:http://www.yemeishu.com/using_camera/
转载于:https://www.cnblogs.com/yemeishu/p/3771077.html
Using the Cordova Camera API相关推荐
- cordova camera插件——摄像头插件的使用及上传图片
介绍 cordova提供照相机API与设备相机进行交互. 通过照相机API.我们可以拍摄或者访问照片库中的照片,返回图片的base64编码字符串或者图片的url文件路径. 安装插件 需要cordova ...
- android 音视频流采集,Android 音视频开发(四):使用 Camera API 采集视频数据(示例代码)...
本文主要将的是:使用 Camera API 采集视频数据并保存到文件,分别使用 SurfaceView.TextureView 来预览 Camera 数据,取到 NV21 的数据回调. 注: 需要权限 ...
- Android Camera API 2使用OpenGL ES 2.0和GLSurfaceView对预览进行实时二次处理(黑白滤镜)
这段时间有点忙,一直没时间写第三篇教程,其实代码很早之前就写好了.本系列教程会有三篇文章讲解Android平台滤镜的实现方式,希望在阅读本文之前先阅读前面两篇文档. 第一篇 Android Camer ...
- 调用Camera API实现自己的拍照和摄像程序
参考博客: http://www.cnblogs.com/franksunny/archive/2011/11/17/2252926.html 根据Camera API实现自己的拍照和摄像程序 通过上 ...
- Android Camera API/Camera2 API 相机预览及滤镜、贴纸等处理
Android Lollipop 增加了Camera2 API,并将原来的Camera API标记为废弃了.相对原来的Camera API来说,Camera2是重新定义的相机 API,也重构了相机 A ...
- Android使用Camera2 替代过时的Camera API
因为考虑到想要新增新的5.0以上的Camera2 API,发现变得太多,有重构的意思,还好先发现了这篇文章,目前对5.0以下的版本都没有兼容包和支持,所以建议按照文中最后一条做一下API版本判断 以下 ...
- Camera API : Camera.getNumberOfCameras()分析
文章目录 高通 Camera API: Camera.getNumberOfCameras()分析 背景 接口实现分析 为什么? 如何处理? 拓展 高通 Camera API: Camera.getN ...
- Android 新老两代 Camera API 大起底
https://blog.csdn.net/Byeweiyang/article/details/80515192 0.背景简介 最近有一部分相机相关的需求,专注于对拍摄的照片.视频的噪点.色温.明暗 ...
- Android开发:调用camera API 创建MediaRecorder
本文出自 "whithin's" 博客,请务必保留此出处http://whithin.blog.51cto.com/690417/1063573 1. add below thr ...
最新文章
- Java之IO,BIO,NIO,AIO
- 关于JavaScript为何要限制跨域访问
- vue中监听input框获取焦点,失去焦点的问题
- 强人工智能是潘多拉魔盒吗
- 半导体公司IC设计环境概况
- 威联通服务器显示磁盘为挂载,如何在 QNAP NAS 上使用虚拟磁盘?
- PAT乙级(1015 德才论)
- 高一信息技术练习软件_信息技术高手段 网络教研新形式
- vs设计窗口不见了_VS厂欧米茄海马300系列女王密使腕表评测
- 网站中使用中文个性字库字体--@font-face解决方案探索 l(转)
- [渝粤教育] 西南科技大学 机械设计基础 在线考试复习资料
- 物联网技术概论:第1章
- 模糊查询和sql语句的拼接
- Android NFC开发概述
- python可视化丨从1896年说起,用数据看 120 年奥运变迁
- Mac 终端提示You have not agreed to the Xcode license agreements
- 【观察】掘金医疗大数据,如何四两拨千斤?
- 震惊科学界!DeepMind AI破解「蛋白质折叠」难题
- 什么是FIR filter?
- 用面包板搭建4bit加法器