nativeservices.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. (function (app) {
  2. app.factory('camera', ["$q", function ($q) {
  3. return {
  4. chooseImage: function (cameraOptions) {
  5. var deferred = $q.defer();
  6. var defaultCameraOptions = {
  7. quality: 50,
  8. sourceType: 1,
  9. allowEdit: true,
  10. encodingType: 0,//0为jpg,1为png
  11. targetHeight: 112,
  12. targetWidth: 112
  13. };
  14. var options = angular.extend(defaultCameraOptions, cameraOptions);
  15. var sheetOptions = {
  16. title: '选择图片方式',
  17. buttonLabels: ['拍摄照片', '从图库选择'],
  18. addCancelButtonWithLabel: '取消',
  19. androidEnableCancelButton: true
  20. };
  21. window.plugins.actionsheet.show(sheetOptions, function (index) {
  22. switch (index) {
  23. case 1: //拍摄图片
  24. options.sourceType = 1;
  25. break;
  26. case 2://从图库选择
  27. options.sourceType = 2;
  28. break;
  29. default:
  30. deferred.resolve();
  31. break;
  32. }
  33. navigator.camera.getPicture(function (imageUri) {
  34. if (imageUri) {
  35. deferred.resolve(imageUri);
  36. } else {
  37. deferred.reject('图片未找到');
  38. }
  39. }, function (error) {
  40. deferred.reject(error);
  41. }, options);
  42. });
  43. return deferred.promise;
  44. }
  45. };
  46. }]);
  47. })(angular.module('app.services'));