2017-09-13 55 views
1

我正在使用PCLStorage將圖像存儲在localStorage中,並通過返回的路徑訪問它們。當Xamarin表單使用PCLStorage時,ios LocalStorage在哪裏?

它的工作正常,但問題是,每當我再次開始調試應用程序,圖像不可訪問。

實際上它將圖像存儲在本地存儲中?這是不是永久位置? 我想在sqlite中將圖像存儲在fileSystem以及相關數據和圖像路徑中。它是一個離線應用程序,因此需要永久存儲這些數據。

對此的任何建議將有所幫助。

謝謝

回答

0

我得到的答案對Xamarin論壇這個問題,所以才更新這裏的鏈接,這樣可以幫助其他人。

https://forums.xamarin.com/discussion/comment/217282/#Comment_217282

如這裏解釋說,每次我們重新部署應用程序的核心路徑改變這就是爲什麼在重新部署我沒能在那裏我救了它的道路上查找圖片。所以現在我只保存部分路徑,如folderName \圖像名稱和我在運行時發現的核心路徑的其餘部分。

這解決了我的問題。

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()); 
       } 
      }); 
     } 
    } 
} 
+0

感謝您的回覆。我知道我們可以使用Dependency服務來做到這一點。但只想知道在這裏解釋的PCLStorage https://github.com/dsplaisted/PCLStorage。這對我來說工作得很好,但是我面臨的唯一問題是我無法在重新調試應用程序時訪問圖像。否則,在殺死應用程序並重新啓動設備中的應用程序工作正常。所以我想知道PCLStorage實際存儲圖像的位置? –

相關問題