我已经构建了一个必须在iOS,Android和Windows Phone上运行的应用程序。除iOS外,所有工作都很好。我的应用程序使用相机拍摄照片,调整图像大小并保存图像。
在iOS上,这些图像被保存到正在删除的应用程序的tmp目录中,所以现在我将图像保存到Documents文件夹中。
然后我将此图像的路径保存到我的sqlite数据库中。在我的html页面上,我使用url引用该文件,例如
VAR /移动/应用/ GUID-HERE /文档/ imageName.jpg
现在看来,当我在xCode中重建我的应用程序时,应用程序guid已更改,因此以前保存的所有文件引用现在都无效。
所以
OR
答案 0 :(得分:1)
使用File插件的toInternalURL()
属性。保存图像后,您可以获得没有该GUID的本地URL,而是将其保存到数据库中。网址具有此格式
cdvfile://localhost/persistent/path/to/file
一个例子: (主要来自file-transfer docs。需要文件和文件传输插件)
resolveLocalFileSystemURL(cordova.file.documentsDirectory, function success(entry) {
download(entry.toInternalURL() + "image.jpg");
});
var download = function(localUrl) {
var fileTransfer = new FileTransfer();
var uri = encodeURI("https://cordova.apache.org/images/cordova_bot.png");
fileTransfer.download(
uri,
localUrl,
function(entry) {
document.body.innerHTML = entry.toInternalURL();
var img = document.createElement("img");
img.setAttribute('src', entry.toInternalURL());
document.body.appendChild(img);
},
function(error) {
console.log("error code" + error.code);
},
false,
{
headers: {
"Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
}
}
);
}