对于所有那些长期挣扎的人来说。
由于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
}
);
}
希望我可以帮助一些人挣扎好几天!就像我一样。
如果您有疑问,请与我联系。
答案 0 :(得分:0)
[已解决]此问题已由我自己解决,您现在可以将其用于自己的故障排除。