我正在使用PCLStorage将图像存储在localStorage中,并通过返回的路径访问它们。
它工作正常,但问题是,每当我再次开始调试应用程序时,图像都无法访问。
实际上它将图像存储在本地存储中?它不是永久性的位置吗? 我想在sqlite中将图像存储在fileSystem和相关数据和图像路径中。它是一个离线应用程序,因此需要永久存储这些数据。
对此的任何建议都会有所帮助。
由于
答案 0 :(得分:1)
尝试以下步骤。
界面相当简单,因为我们在将图像保存到磁盘时只对传递字节数组和文件名感兴趣。
public interface IPicture
{
void SavePictureToDisk (string filename, byte[] imageData);
}
DependencyService会将图像保存委派给相应的类。 DependencyService的用法是:
DependencyService.Get<IPicture>().SavePictureToDisk("ImageName", GetByteArray());
在特定于平台的项目中创建类
iOS项目
[assembly: Xamarin.Forms.Dependency(typeof(Picture_iOS))]
namespace ImageSave.iOS
{
public class Picture_iOS: IPicture
{
public void SavePictureToDisk(string filename, byte[] imageData)
{
var MyImage = new UIImage(NSData.FromArray(imageData));
MyImage.SaveToPhotosAlbum((image, error) =>
{
//you can retrieve the saved UI Image as well if needed using
//var i = image as UIImage;
if(error != null)
{
Console.WriteLine(error.ToString());
}
});
}
}
}
答案 1 :(得分:0)
我在Xamarin论坛上得到了这个问题的答案,所以只需更新这里的链接,这样就可以帮助其他人了。
https://forums.xamarin.com/discussion/comment/217282/#Comment_217282
正如这里所解释的那样,每当我们重新部署应用程序时,核心路径都会改变,这就是重新部署的原因,我无法在保存它的路径上找到图像。所以现在我只保存部分路径,比如folderName \图像名称和我在运行时找到的核心路径的其余部分。
这解决了我的问题。