Xamarin.Auth:更新应用时不会保留帐户数据



我正在使用Xamarin.Auth对foursquare等服务进行身份验证。我的身份验证代码工作正常,问题是当我部署新版本的应用程序时,帐户数据不会保留 - 每次我在手机上部署测试版本时,我都必须重新进行身份验证。

这是我存储帐户的方式;

  /// <summary>
/// Stores the account.
/// </summary>
private void StoreAccount(AuthenticatorCompletedEventArgs eventArgs)
{
    if (!eventArgs.IsAuthenticated) // make sure we are authenticated.
    {
        Log.Debug(Logging.AppTag, "FourSquareClient can't store account as auth. is cancelled. ");
        return;
    }
    this.IsAuthenticated = true;
    this.Account = eventArgs.Account;
    AccountStore.Create(this.OwnerContext).Save(eventArgs.Account, "Foursquare");
}

这是我检查我们是否有存储帐户的方法;

 /// <summary>
/// Retrieves stored account.
/// </summary>
private void RetrieveAccount()
{
    if (this.IsAuthenticated)
    {
        Log.Debug(Logging.AppTag, "FourSquareClient is already authenticated! ");
        return;
    }

    var accounts = AccountStore.Create(this.OwnerContext).FindAccountsForService("Foursquare");
    var enumerable = accounts as IList<Account> ?? accounts.ToList();
    if (enumerable.Any())
    {
        Log.Info(Logging.AppTag, "Foursquareclient found account data.");
        this.IsAuthenticated = true;
        this.Account = enumerable.First();
    }
    else
    {
        Log.Info(Logging.AppTag, "Foursquareclient no account data found!");
        this.IsAuthenticated = false;
        this.Account = null;
    }
}

默认行为是每次部署应用时重置 Android 设置。 为了防止这种情况,在Xamarin Studio -->首选项-->Android -->选中"在应用程序部署之间保留数据/缓存"

如果您使用的是Visual Studio,则应该有类似的设置。

相关内容

  • 没有找到相关文章

最新更新