我有一个jquery移动应用程序(phonegap构建)。我有一个功能,可以从设备的照片库获取图像的uri。我将uri作为字符串存储在本地存储区中,因此下次打开页面时,图像将使用uri显示。所有这些都很好(我没有得到图像的数据UrI,因为我不想耗尽本地存储空间,而且由于学校使用的应用程序(隐私问题),我当然不想将图像上传到服务器上)。不过,在这个装置上没问题。所有的工作,直到我做一个更新的应用程序。安装更新后,图像的URI将发生变化。如何获得所选图片的静态URI。下面是从图库获取图像的代码。
// JavaScript Document //Get Picture stuff
navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50, destinationType:
destinationType.FILE_URI, sourceType:Camera.PictureSourceType.SAVEDPHOTOALBUM});
var pictureSource; // picture source
var destinationType; // sets the format of returned value
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
function onPhotoURISuccess(imageURI) {
// Uncomment to view the image file URI
console.log(imageURI);
localStorage.setItem("piclink", imageURI)
// Get image handle
var largeImage = document.getElementById('largeImage');
// Unhide image elements
largeImage.style.display = 'block';
// Show the captured photo
// The inline CSS rules are used to resize the image
largeImage.src = imageURI;
}
// Called if something bad happens.
function onFail(message) {alert('Failed because: ' + message);
}我应该指出,我应用的更新不会对相机代码进行任何更改。所有数据都保存在本地存储空间中,我可以通过控制台看到它保存和调用URI没有问题,但是在更新后的URI路径中,路径发生了变化(大量的数字和破折号)。bTW,安卓版本没有问题。任何帮助都将不胜感激。
发布于 2014-05-06 18:06:21
我的理解是,您要保存给imageURI的localStorage只是由CDV摄像机插件处理的名为临时文件的cdv_*。正如user2603892正确指出的那样,您关心的似乎是应用在更新中的新应用程序位置标识符。然而,consider...the相机插件可能会出现其他一些问题,这些插件顺序将临时文件命名为从库中挑选出来的文件,或者是照片。cdv_photo_001.jpg,cdv_photo_002.jpg等。这种情况一直持续到您执行camera.cleanup()操作,该camera.cleanup()删除cdv_*文件。
插件将这些文件存储在应用程序根目录下的/tmp文件夹中。显然,这也不会被iOS在更新时复制。
来自模拟器的示例: imageURI =imageURI
建议将您的文件(而不是文件名)重命名并保存到1) Documents文件夹,或2)应用程序支持文件夹,然后引用它供将来使用。
希望这能有所帮助。
发布于 2014-05-05 10:39:31
我知道这是一个旧的职位,但我想我会分享我的发现,希望它将有助于其他人。我在一个应用程序中遇到了同样的问题,它必须在本地存储图像,而不将它们上传到服务器。似乎出现了这个问题,因为iTunes将更新安装在一个新的应用程序目录中,如iOS应用程序编程指南中所述。
在应用程序更新期间保存的文件当用户下载应用程序更新时,iTunes将更新安装到新的应用程序目录中。然后,在删除旧安装之前,将用户的数据文件从旧安装移到新的应用程序目录。在更新过程中,保证保存下列目录中的文件:
<Application_Home>/Documents
<Application_Home>/Library 虽然其他用户目录中的文件也可能被移到上面,但是您不应该依赖它们在更新后出现。
正如讨论过的这里。
您在文章中提到的“大量数字和破折号”是应用程序目录。这在每次更新上都会发生变化,因此在更新后保存的URI将与当前的URI不同。
我仍在四处寻找工作,但还没有找到任何东西。
https://stackoverflow.com/questions/21505096
复制相似问题