ionic1调用相机和相册

插件 cordova-plugin-camera

    // 上传文件
    $scope.postUploadFile = function () {
      $ionicActionSheet.show({
        buttons: [
          {
            text: '相机'
          },
          {
            text: '图库'
          }
        ],
        cancelText: '关闭',
        cancel: function () {
          return true;
        },
        buttonClicked: function (index) {
          switch (index) {
            case 0:
            $scope.pickImage(1); // 相机
              break;
            case 1:
            $scope.pickImage(0); // 相册
              break;
            default:
              break;
          }
          return true;
        }
      });
    }

    // 调用 相机 相册
    $scope.pickImage = function (type) {
      var options = {
        //这些参数可能要配合着使用,比如选择了sourcetype是0,destinationtype要相应的设置
        quality: 100, //相片质量0-100
        destinationType: 0, //返回类型:DATA_URL= 0,返回作为 base64 編碼字串。 FILE_URI=1,返回影像档的 URI。NATIVE_URI=2,返回图像本机URI (例如,資產庫)
        sourceType: 0, //从哪里选择图片:PHOTOLIBRARY=0,相机拍照=1,SAVEDPHOTOALBUM=2。0和1其实都是本地图库
        allowEdit: false, //在选择之前允许修改截图
        encodingType: 0, //保存的图片格式: JPEG = 0, PNG = 1
        targetWidth: 800, //照片宽度
        targetHeight: 800, //照片高度
        mediaType: 2, //可选媒体类型:圖片=0,只允许选择图片將返回指定DestinationType的参数。 視頻格式=1,允许选择视频,最终返回 FILE_URI。ALLMEDIA= 2,允许所有媒体类型的选择。
        cameraDirection: 0, //枪后摄像头类型:Back= 0,Front-facing = 1
        popoverOptions: CameraPopoverOptions,
        saveToPhotoAlbum: true //保存进手机相册
      };
      $cordovaCamera.getPicture(options).then(function (data) {
        $scope.uploadFile(data); //图片上传
      }, function (err) {
        // console.log(err);
      });
    };

    //图片上传
    $scope.isUpLoad = false;
    $scope.Jh2Host = Jh2Host;
    $scope.uploadFile = function (data) {
      var fileUrl = data.split("/0/").pop();
      var filename = data.split("/").pop();
      var targetPath = cordova.file.externalRootDirectory + fileUrl; //APP下载存放的路径,可以使用cordova file插件进行相关配置
      console.log(targetPath);
      $scope.upInfo = '准备上传';
      $scope.isUpLoad = true;
      $scope.buttonFlag = true;
      var url = encodeURI(Jh2Host + "/Admin/postUploadFile");
      var trustHosts = true;
      var options = {
        fileName: filename,
      };
      $cordovaFileTransfer.upload(url, targetPath, options, trustHosts).then(function (result) {
        console.log(result);
        var res = JSON.parse(result.response);
        if (!res.IsErr) {
          $scope.uploadFileName = res.Data;
          $scope.upInfo = '上传成功';
          $scope.buttonFlag = false;
          $timeout(function () {
            $scope.isUpLoad = false;
          }, 1500)
        } else {
          $cordovaToast.showShortBottom('上传失败');
        }

      }, function (err) {
        console.log(err);
        // $ionicLoading.hide();
      }, function (progress) {
        var downloadProgress = (progress.loaded / progress.total) * 100;
        $scope.upInfo = '已上传' + Math.floor(downloadProgress) + '%';
      });
    };

你可能感兴趣的:(ionic1调用相机和相册)