ionic混合开发总结之调用手机相机
2024-10-20 09:33:31
整理一下,给接触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 };
最新文章
- poj2115-C Looooops(扩展欧几里德算法)
- ecshop中那些有意思的代码
- [CareerCup] 13.7 Node Pointer 节点指针
- Centos上的屏幕保护
- [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
- [Ruby on Rails系列]5、专题:Talk About SaSS
- Git 一些常见的命令
- Python学习_03_列表、元组、字符串
- react中的this.setState()
- Java中栈的应用,括号匹配
- python出现编码问题的原因及编码问题的解决
- DMA及cache一致性的学习心得 --dma_alloc_writecombine【转】
- Weblogic禁用SSLv3和RC4算法教程
- 剑指offer十八之二叉树的镜像
- ats 转发代理
- IT经理苏大强:我不吃,我不喝,我要赶项目!
- HDU 5195 DZY Loves Topological Sorting 拓扑排序
- JAVA多线程提高十一:同步工具Exchanger
- MySQL触发器更新本表数据异常:Can&#39;t update table &#39;tbl&#39; in stored function/trigger because it
- 1050 String Subtraction
热门文章
- [数据分析与可视化] 数据绘图要点2-Y轴的开始与结束
- 数据库服务器CPU不能全部利用原因分析
- ArcGIS插件-太乐地图
- C++string与int的相互转换(使用C++11)
- 算法学习笔记(9): 中国剩余定理(CRT)以及其扩展(EXCRT)
- SOFAJRaft依赖框架Disruptor浅析
- 动力节点——day01
- NLP知识图谱项目合集(信息抽取、文本分类、图神经网络、性能优化等)
- File的概述-File类的静态成员变量
- 文盘Rust -- 给程序加个日志