科尔多瓦相机插件在从具有文件 URI 的图库中选择时始终返回相同的图像
Cordova camera plugin always return the same image when select from gallery with file URI
升级到最新的 cordova 相机 lib 0.3.4 后,我能够在从图库中选择一个图像后获得真实的图像 uri,返回的文件调用 pic.jpg,但是如果我选择另一个,它将返回具有相同名称的相同图像 pic.jpg,所以我被困在相同的图像:(
图像路径看起来像 file:///storage/emulated/0/android/data/app/cache/.pic.jpg
知道吗?
https://github.com/apache/cordova-plugin-camera/blob/master/src/android/CameraLauncher.java
$scope.getPhoto = function() {
// Retrieve image file location from specified source
navigator.camera.getPicture($scope.processImageUri, $scope.onFail, {
quality: 88,
correctOrientation: true,
encodingType: Camera.EncodingType.JPEG,
destinationType: navigator.camera.DestinationType.FILE_URI,
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
allowEdit: true
});
我在iOS平台(iOS 10.2(上也遇到了这个问题。我不想使用迁移到DATA_URI的公认解决方案,因为我在 iOS 和 Android 之间使用相同的代码,并且只想保留FILE_URI方法。
开始调试,发现是因为获取图片后调用清理函数而发生的。由于在清理调用文件从临时存储中删除,插件为下一张可用的图片提供相同的文件名。从逻辑上讲,这应该没问题,但是这里的Web视图播放邪恶,从其缓存中挑选旧图像,因为URL与以前的URL相同。
我来了一个小修复。测试过,就我而言,它工作正常。
我已经分叉了相机插件存储库并修改了生成临时文件名的方法。
我错过了父存储库的指南,并且我的提交不是必需的格式,所以我想我的拉取请求将被拒绝。(我会在有时间的时候更新并重新创建它(。
但是现在,除非您打算删除/添加平台(可能会从失去更改的主存储库克隆(,否则您可以尝试此解决方案。
函数之后编写这些代码,并将你的"destinationType:"替换为我的
function capturePhoto()
{
// Take picture using device camera and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
destinationType: destinationType.DATA_URL });
}
- 如何使用JavaScript/jQuery选择图像的多边形区域
- jQuery blimp文件上传-上传后保留选择图像行
- 如何在Imgareaselect中选择图像根据像素进行选择
- 如何在选择图像时显示刻度图像
- jquery选择图像不起作用
- 悬停并选择图像贴图的状态
- 如何在选择图像时显示图像
- 在 JavaScript 中的 ClickEvent 上选择图像
- 响应式文件管理器.防止在选择图像时模式关闭
- 将鼠标悬停在地图上时,取消选择图像映射的选定区域
- 建议为选择图像创建代码
- 选择图像(但尚未上传)时更改输入类
- CKFinder 如何在选择图像时获取尺寸 URL 和尺寸(宽度/高度)(文件:选择)
- 通过 jscript 随机选择图像时动态全尺寸调整图像大小的问题
- html5选择图像并进行操作
- DNN:HTML编辑器不显示要选择图像的文件夹
- 选择图像的一部分,并使用jQuery检索其坐标
- 如何在单击时仅选择图像的一部分
- 在javascript中选择图像
- 从弹出窗口中选择图像并显示在主页面中