使用ionic / cordova imagepicker将图像附加到电子邮件编辑器中 - 权限被拒绝

时间:2016-09-21 16:56:06

标签: android cordova ionic-framework

对于所有那些长期挣扎的人来说。

由于Android 6.0 Google引入了新的安全检查,因此当您想要从缓存存储中添加附件时,您将收到拒绝权限错误。

你可以简单地解决它......

只需使用imagepicker首先获取图像并将其保存为结果,如cordovas示例中所示。

然后使用cordova文件插件将图像从缓存移动到externalRootDirectory(SD存储,您不需要在设备中使用SD存储来使用它)。

以下是如何在离子应用程序中执行此操作的工作示例:

  window.imagePicker.getPictures(
  function(results) {

    // Restrict amount of images
  for (var i = 0; i < results.length; i++) {



      // Get image only uri
      $scope.justImg = results[i].replace(cordova.file.cacheDirectory,'');

      // Move file from cache to sd (needed by android 6.0)
      $cordovaFile.moveFile(cordova.file.cacheDirectory, $scope.justImg, cordova.file.externalRootDirectory).then(function (success) {

        // Set new path for image
        var newPath = cordova.file.externalRootDirectory+$scope.justImg;

        // Save new path to email attachments
        $scope.emailAttachments.push(newPath);

        // Push no base 64 for view images
        $scope.allImages.push(newPath);

      }, function (error) {
        console.log(error);
      });
    }


}, function (error) {
  console.log('Error: ' + error);
}, {
  maximumImagesCount: 3,
  width: 800,

  outputType: 0,
  quality: 100
   }
 );
}

希望我可以帮助一些人挣扎好几天!就像我一样。

如果您有疑问,请与我联系。

1 个答案:

答案 0 :(得分:0)

[已解决]此问题已由我自己解决,您现在可以将其用于自己的故障排除。