在Xamarin.Forms中沒有提供統一的方法。您可以利用DependencyService從您的共享代碼中訪問它,並仍然根據平臺進行區分。這可能是這樣的,定義一個接口在你的共享代碼:
public interface IFilesystemService
{
string GetAppRootFolder();
}
現在創建這樣在Android上實現:
public class FilesystemServiceAndroid : IFilesystemService
{
public string GetAppRootFolder()
{
return System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
}
}
對於iOS的想法是一樣的,只有實施可能會有所不同。當然,您可以根據需要擴展此類,例如可以讀取或寫入文件。
不要忘記用[assembly: Xamarin.Forms.Dependency (typeof (FilesystemServiceAndroid))]
屬性來裝飾您的實現名稱空間。像這樣:
[assembly: Xamarin.Forms.Dependency (typeof (FilesystemServiceAndroid))]
namespace YourAppName
{
public class FilesystemServiceAndroid : IFilesystemService
{
// ... code here
}
}
現在你可以在你這樣的共享代碼檢索:var path = DependencyService.Get<IFilesystemService>().GetAppRootFolder();
[裝配:Xamarin.Forms.Dependency(typeof運算(FilesystemServiceAndroid))] 我在哪裏有把這個在?我對此很陌生,對不起。我仍然得到空回 –
我已經更新了答案 –
我似乎仍然有錯誤。但是這次是用SQLiteConnection。你認爲你能幫助我嗎? :/ 我已經屏蔽了這個錯誤:http://puu.sh/va49n/f4431e525c.png –