整理一下,给接触ionic的伙伴们一些参考,少走弯路。

调用手机的前提是已经成功创建了项目。

首先,要下载两个插件,一个是 cordova-plugin-camera,是调用相机的插件,还有一个是NgCordova,具体命令自己百度,网上很多。

下载完NgCordova后,不要忘记在app.js里面添加依赖,其中的ngCordova就是依赖,

var app = angular.module('starter', ['ionic', 'ngCordova','starter.controllers','starter.loginController'
,'starter.zoufang','starter.zaixian',
'starter.tongbao','starter.wentishouji','starter.zhanshiController','starter.zerenController'])

定义调用相机的方法,这里是拍照不能超过九张。

其中options为调用相机时设置的参数,

destinationType为拍摄完成后返回的数据格式,此处为base64编码,
sourceType 为是从相机拍摄还是从相册选择,此处为相机拍摄
saveToPhotoAlbum为是否保存到手机相册中

其中需要注意的是controller中不要忘记添加 $cordovaCamera

其中的图片上传的方法自行忽略,这里为后台给出的方法,

拿到imageData,就可以做一些处理了,不论是上传,还是显示都可以操作了。

 
 1 $scope.getCamera = function(){
2 if($scope.data.y_image.length<9){
3 var options = {
4 quality: 70,
5 destinationType: Camera.DestinationType.DATA_URL,
6 sourceType: Camera.PictureSourceType.CAMERA,
7 //allowEdit: true,
8 encodingType: Camera.EncodingType.JPEG,
9 targetWidth: 480,
10 targetHeight: 720,
11 popoverOptions: CameraPopoverOptions,
12 saveToPhotoAlbum: false
13 };
14 $cordovaCamera.getPicture(options).then(function(imageData) {
15 var imagedata = imageData;
16 $scope.data.isimage = true;
17 $ionicLoading.show({
18 template: '图片上传中...'
19 });
20 client.UpdateImage(imagedata, function (result) {
21 $ionicLoading.hide();
22 $scope.data.y_image.push({'src':"data:image/jpeg;base64," + imageData,'val':'/Yuonhtt_FileUpload/img/'+result});
23 $scope.$digest();
24 }, function (name, err) {
25 alert(err);
26 });
27 }, function(err) {
28 console.log(err);
29 });
30 }else{
31 var confirmPopup = $ionicPopup.alert({
32 title: '提醒',
33 template: '上传图片超过9张!',
34 okText:'确 认',
35 okType:'button-assertive'
36 });
37 confirmPopup.then(function(res) {
38 });
39 }
40
41 };

ionic混合开发总结之调用手机相机的更多相关文章

  1. uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式

    前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...

  2. Cordova+Angularjs+Ionic 混合开发入门讲解

    作为一名学习Android开发的学生,对于移动开发的发展趋势颇为关注,大家都知道,现在原生的移动开发在企业上基本很少使用了,大部分企业为了降低成本,选择了webapp,hybrid(混合开发)这两种模 ...

  3. H5混合开发二维码扫描以及调用本地摄像头

    今天主管给了我个需求,说要用混合开发,用H5调用本地摄像头进行扫描二维码,我之前有做过原生安卓的二维码扫一扫,主要是通过调用zxing插件进行操作的,其中还弄了个闪光灯.但是纯H5的没接触过,心里没底 ...

  4. 混合开发 Hybird Ionic Angular Cordova web 跨平台 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. 基于ionic+angulajs的混合开发实现地铁APP

    基于ionic+angulajs的混合开发实现地铁APP 注:本博文为博主原创,转载时请注明出处. 项目源码地址:https://github.com/zhangxy1035/SubwayMap 一. ...

  6. 移动端混合开发----ionic

    目前移动端分为三大主流:纯原生.混合开发.web App,随着手机硬件的升级,公司们似乎偏好于web页面开发,而混合开发相对纯web App似乎更受大公司青睐,所谓混合开发俾人理解为,原生代码(iOS ...

  7. .NET混合开发解决方案10 WebView2控件调用网页JS方法

    系列目录     [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NE ...

  8. .NET混合开发解决方案11 WebView2加载的网页中JS调用C#方法

    系列目录     [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NE ...

  9. .NET混合开发解决方案12 网页JS调用C#方法访问WinForm或WPF窗体

    系列目录     [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NE ...

  10. IOS-Hybrid(混合开发)

    http://www.cnblogs.com/oc-bowen/p/5423902.html 1.1.     APP三种开发模式 智能手机之普及不用多说,手机APP渗投到各个行业:电商(淘宝.京东等 ...

随机推荐

  1. Python实验报告(第2章)

    实验2:Python语言基础 一.实验目的和要求 1.了解Python的编写规范要求: 2.了解Python的基本数据类型: 3.学会使用Python的五种运算符: 4.掌握Python的基本输入和输 ...

  2. Jmeter——循环控制器中实现Counter计数器的次数重置

    近期在使用Jmeter编写个辅助测试的脚本,用到了多个Loop Controller和Counter. 当时想的思路就是三个可变的数量值,使用循环实现:但第三个可变值的数量次数,是基于第二次循环中得到 ...

  3. GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes

    1. 论文简介 论文题目:GeoLayout: Geometry Driven Room Layout Estimation Based on Depth Maps of Planes Paper地址 ...

  4. 一文详解RocketMQ的存储模型

    摘要:RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型. 本文分享自华为云社区<终于弄明白了 RocketMQ 的存储模型>,作者:勇哥java实战分享. RocketMQ 优 ...

  5. TCS34725 颜色传感器设备驱动程序

    一.概述 以前的传感器是用过中断的方式进行计数的,现在已经有 I2C 通行的颜色传感器,不在需要我们像之前那样,通过计数的方式获取数据,直接通过I2C读取即可.当然有通过串口的方式获取采集数据的,串口 ...

  6. 《深度探索C++对象模型》第四章 Function语意学

    member function相对于nonmember function之间不存在效率之间的差别,因为编译器内部已经将"member 函数实体"转化为对等的"nonmem ...

  7. [C#]关于override和new在重写方法时的区别

    规则: 在"运行时"遇到虚方法时,对象会调用虚成员派生得最远的.重写的实现. 如果是用new修饰符实现的方法,它会在基类面前隐藏派生类重新声明的成员,这时候会找到使用new修饰符的 ...

  8. BBS项目功能编写逻辑思路汇总

    BBS项目功能编写逻辑思路汇总 一.BBS创数据表 二.BBS注册功能 三.BBS登录功能 四.BBS首页搭建 五.BBS修改密码 六.BBS个人站点 七.BBS文章详情 八.BBS导入模块 九.BB ...

  9. MySQL之字段约束条件

    MySQL之字段约束条件 一.MySQL之字段约束条件 1.unsigned 无符号 unsigned 为非负数,可以用此类增加数据长度 eg:tinyint最大是127,那tinyint unsig ...

  10. Properties集合中的方法load-缓冲流的原理

    Properties集合中的方法load 参数:InputStream instream:字节输入流,不能读取含有中文的键值对Reader reader:字符输入流,能读取含有中文的键值对使用步骤:1 ...