Xamarin.Forms сохранить пользователя в общих функциях - PullRequest
0 голосов
/ 23 января 2020

Я сохранил токен в мобильном телефоне с помощью интерфейса SharedFunctions, который я создал В IOS:

public void SaveAccessToken(string token)
{
    NSUserDefaults.StandardUserDefaults.SetString(token, "AccessToken");
}

В Android:

public void SaveAccessToken(string token)
{
    var mSharedPrefs = PreferenceManager.GetDefaultSharedPreferences(Android.App.Application.Context);
    var mPrefsEditor = mSharedPrefs.Edit();

    mPrefsEditor.PutString("AccessToken", token);
    mPrefsEditor.Commit();
    mPrefsEditor.Dispose();
    mSharedPrefs.Dispose();
}

Я также хочу сохранить объект вместо строки.

1 Ответ

1 голос
/ 23 января 2020

Посмотрев документацию NSUserDefaults , кажется, что написание объекта несколько ограничено, поэтому я бы предложил go другим способом: сериализовать объект с помощью Newtonsoft. JSON (или другую JSON библиотеку) и запишите сериализованный объект.

Для iOS:

public void SaveAccessToken<T>(string key, T value)
{
    var serializedObject = JsonConvert.SerializeObject(value);
    NSUserDefaults.StandardUserDefaults.SetString(serializedObject, key);
}

и аналогично для Android

public void SaveAccessToken<T>(string key, T value)
{
    var serializedObject = JsonConvert.SerializeObject(value);

    var mSharedPrefs = PreferenceManager.GetDefaultSharedPreferences(Android.App.Application.Context);
    var mPrefsEditor = mSharedPrefs.Edit();

    mPrefsEditor.PutString(serializedObject, key);
    mPrefsEditor.Commit();
    mPrefsEditor.Dispose();
    mSharedPrefs.Dispose();
}
...