【发布时间】:2020-09-09 03:11:06
【问题描述】:
我有一个适用于 iOS 的 javascript 应用程序,我在其中拍照,我想在图像组件中显示它们。
{
xtype: 'image',
itemId: 'camaraFoto1',
id: 'camaraFoto1',c
src: 'img/camara.png',
reference: 'camaraFoto1',
cls: 'imagen_capturada'
}
拍摄照片后,它会存储在临时目录 (cordova.file.tempDirectory) 中,但当我注销时该目录为空,因此我无法使用它,因为我需要持久性。
所以我尝试将照片移动到其他目录 (cordova.file.dataDirectroy),然后为图像设置正确的 src,但图像组件不加载图像。可能是什么问题?
这是我拍摄照片并将 src 设置为图像的代码的一部分:
navigator.camera.getPicture(me.photoSuccess, me.photoFailure, {
quality: quality1,
destinationType: navigator.camera.DestinationType.FILE_URI, //DATA_URL
sourceType: navigator.camera.PictureSourceType.CAMERA,
encodingType: navigator.camera.EncodingType.JPEG,
targetWidth: targetWidth1,
targetHeight: targetHeight1,
correctOrientation : correctOrientation1
});
photoSuccess: function (tempImage) {
const newBaseFilesystemPath = cordova.file.dataDirectory;
window.resolveLocalFileSystemURL(
tempImage,
function(fileEntry){
newFileUri = newBaseFilesystemPath;
newFileName = tempImage.substr(tempImage.lastIndexOf('/') + 1) + ".spc";
window.resolveLocalFileSystemURL(newFileUri,
function(dirEntry) {
// move the file to a new directory and rename it
fileEntry.moveTo(dirEntry, newFileName,
function ok() {
var img = Ext.ComponentQuery.query("#camaraFoto1")[0];
img.setSrc(newBaseFilesystemPath + newFileName );
...
注意:如果我不从 tempDirectory 中移动照片,则所有此问题都有效,并且我可以在组件上看到图像。
当我使用 tempDirectory 和 dataDirectory 时,这些是完整的根目录。第一个有效,第二个无效:
file:///var/mobile/Containers/Data/Application/827A7500-309C-4521-BC0F-303D6D16AE3D/tmp/cdv_photo_1589965037.jpg
file:///var/mobile/Containers/Data/Application/9E3095A3-4D87-493B-A13D-398051179B54/Library/NoCloud/cdv_photo_1590070416.jpg
【问题讨论】:
标签: javascript ios image cordova camera