整理一下,給接觸ionic的夥伴們一些參考,少走彎路。app
調用手機的前提是已經成功建立了項目。ionic
首先,要下載兩個插件,一個是 cordova-plugin-camera,是調用相機的插件,還有一個是NgCordova,具體命令本身百度,網上不少。ide
下載完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'])
定義調用相機的方法,這裏是拍照不能超過九張。spa
其中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 };