Jquery mobile I';我从相册中获得相同的图像,即使在清理了相机缓存之后

Jquery mobile I';我从相册中获得相同的图像,即使在清理了相机缓存之后,jquery-mobile,cordova,Jquery Mobile,Cordova,我正在建设cordova android项目。问题是通过cordova摄像头插件添加图片。当我尝试用新图像删除当前图像时,一切正常 总是得到第一张图片。我尝试清除相机缓存,并用一些随机数更改img属性。那没用。还有什么办法 $(文档).on('touchstart','takePic',函数(){ navigator.camera.cleanup(); navigator.camera.getPicture(onSuccessC、onFail、{ 质量:70, destinationType:C

我正在建设cordova android项目。问题是通过cordova摄像头插件添加图片。当我尝试用新图像删除当前图像时,一切正常

总是得到第一张图片。我尝试清除相机缓存,并用一些随机数更改img属性。那没用。还有什么办法

$(文档).on('touchstart','takePic',函数(){
navigator.camera.cleanup();
navigator.camera.getPicture(onSuccessC、onFail、{
质量:70,
destinationType:Camera.destinationType.FILE\u URI,
源类型:Camera.PictureSourceType.SAVEDPHOTOALBUM,
对,,
允许:是的
});
$(“#takePic”).toggle();
});
函数onSuccessC(imageURI){
var image=document.getElementById('largeImage');
image.src=imageURI;
警报(image.src);
$(“#大图像”).show();
}
$(文档).on('touchstart','#largeImage',函数(){
$(“#largeImage”).prop(“src”,“img/logo.png”+'?'+Math.random());
$(“#大图像”).hide();
$(“#takePic”).toggle();
});
$(文档)。在('pagebeforeshow','添加供应商',函数(){
$(“#大图像”).hide();
});

如果没有cordova.js文件,就无法给出有效的示例

编辑

首先是自制的调查结果。如果我关闭编辑功能,图像uri将看起来像..../cache/modified.jpg?1417011797953,这显然意味着缓存可以工作。顺便说一下,一切都很好


如果我打开编辑功能,我会得到这样的图像uri…/chache/.pic.jpg,乍一看它缺少缓存。。。该插件已经添加了当前时间戳,以使缓存的文件名(您实际上是通过获得一个质量为70%的变体来编辑图像的,因此需要缓存)唯一,并防止您遇到的问题(请参阅)


我建议您使用console.log将imageURI打印到调试器中,并检查是否多次使用相同的URI。

此插件已经添加了当前时间戳以生成缓存的文件名(您实际上是通过获得70%质量的变体来编辑图像,因此需要缓存)独特,可防止您遇到的问题(请参阅


我建议您使用console.log将imageURI打印到调试器中,并检查是否多次使用相同的URI。

根据,
cleanup
仅当
Camera.sourceType
的值等于
Camera.PictureSourceType.Camera
Camera.destinationType
时才起作用ls
Camera.DestinationType.FILE\u URI
这意味着它仅在您从照相机捕获并保存到设备时工作。

根据,
cleanup
仅在
Camera.sourceType
的值等于
Camera.PictureSourceType.Camera
Camera.DestinationType
时工作als
Camera.DestinationType.FILE\u URI
,这意味着它仅在您从相机捕获并保存到设备时有效。

进一步调查表明插件中存在错误。启用编辑功能时缓存不起作用。要修复此问题,我只添加了一些随机项

function onSuccess(imageURI) {
var image = document.getElementById('largeImage');
image.src = imageURI + '?' + Math.random();
alert(image.src);
$("#largeImage").show();
}

祝您愉快。

进一步的调查显示插件中有一个bug。启用编辑功能时,缓存不起作用。要修复此问题,我只添加了一些随机项

function onSuccess(imageURI) {
var image = document.getElementById('largeImage');
image.src = imageURI + '?' + Math.random();
alert(image.src);
$("#largeImage").show();
}

祝您愉快。

这不是插件问题。

存在一些内部WebView缓存问题,因为它已经发生在其他人身上。请阅读&


是的,到目前为止,解决方案是附加时间戳。

这不是插件问题。

存在一些内部WebView缓存问题,因为它已经发生在其他人身上。请阅读&


是的,到目前为止,解决方案是附加时间戳。

您是在尝试从设备中选择现有照片,还是捕获新照片并使用它?我使用sourceType:Camera.PictureSourceType.SAVEDPHOTOALBUM,这意味着我选择的是一个已存在的文件。使用PHOTOLIBRARY作为参数的同一个heppens。是否正在尝试选择现有的照片库从设备中删除或捕获一张新照片并使用它?我使用sourceType:Camera.PictureSourceType.SAVEDPHOTOALBUM,这意味着我正在选择一个已存在的文件。使用PHOTOLIBRARY作为参数的同一个heppens。感谢您的时间。为了改变情况,添加了清理。请参阅正确答案。感谢您的时间。Cleaning是在试图改变事情时添加的。请看正确的答案。感谢您在调查中的帮助。我认为当编辑功能打开时缓存关闭。插件错误。请看正确的答案。感谢您在调查中的帮助。我认为当编辑功能打开时缓存关闭。插件错误。请看正确的答案。我已经告诉我们了在引入了对cordova.camera.cleanup()的调用之后,我也必须在iOS上使用此解决方案在引入了对cordova.camera.cleanup()的调用之后