首页 > 解决方案 > 如何为移动应用程序制作本地存储存储文件

问题描述

我正在构建一个 Xamarin CrossPlatform 应用程序,其所有数据库都在云 api 中,但我想要一个移动设备中的本地存储文件,该文件在有人登录时存储所有登录凭据。

请帮我解决这个问题!

标签: xmlfilexamarin.formslocal-storagecross-platform

解决方案


如果您只想保存登录凭据,则应使用Xamarin.Essentials Storage

首先,将 Xamarin.Essentials NuGet 包添加到每个项目。

在安卓中

protected override void OnCreate(Bundle savedInstanceState) {
    //...
    base.OnCreate(savedInstanceState);
    Xamarin.Essentials.Platform.Init(this, savedInstanceState); // add this line to your code
    //...

若要处理 Android 上的运行时权限,Xamarin.Essentials 必须接收任何 OnRequestPermissionsResult。将以下代码添加到所有 Activity 类中:

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
    Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}

然后保存:

try
{
  await SecureStorage.SetAsync("loginCredential", "loginCredentialValue");
}
catch (Exception ex)
{
  // Possible that device doesn't support secure storage on device.
}

要检索:

try
{
  var loginCredential = await SecureStorage.GetAsync("loginCredential");
}
catch (Exception ex)
{
  // Possible that device doesn't support secure storage on device.
}

推荐阅读