将电子邮件地址保存到帐户应用iOS

时间:2016-12-08 04:36:40

标签: ios xamarin.ios single-sign-on user-accounts

我有两个应用程序(例如:App1和App2)需要使用帐户登录。我需要实现的是当用户成功登录到App1时,电子邮件地址应该保存到设备的默认Accounts应用程序中。然后,当用户打开App2时,如果他需要使用同一帐户登录App2,则从App1保存的电子邮件地址应该显示为用户的推荐。就像您点击登录Google或Facebook一样的应用程序。

由于我是iOS新手,我需要询问是否可以在iOS中实现,如果是,我应该遵循什么程序。

修改

我尝试为此实现KeyChain。如下所示: -

void StoreKeysInKeychain (string key, string value) {

        var s = new SecRecord (SecKind.GenericPassword) {
            ValueData = NSData.FromString (value),
            Generic = NSData.FromString (key)
        };
        var err = SecKeyChain.Add (s);
    } 


void GetRecordsFromKeychain (string key)
    {
        SecStatusCode res;
        var rec = new SecRecord (SecKind.GenericPassword) {
            Generic = NSData.FromString (key)
        };
        var match = SecKeyChain.QueryAsRecord (rec, out res);
        if (match != null) {
            // nsdata object :  match.ValueData;
        }


    }

这样,当我使用电子邮件地址登录App1时,它会被保存,当我打开App2时,我会收到该电子邮件地址。这很好用。但现在的问题是,如果我从App1注销并使用其他电子邮件地址登录。该帐户在App2中不可见。如何获取所有电子邮件地址的列表?

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您需要使用应用程序组在应用程序之间共享信息,从应用程序和证书中的构建设置启用应用程序组,为它们分配相同的组,并在一组NSuserdefault上相互放置信息。

应用程序组的Xamarin文档位于:https://developer.xamarin.com/guides/ios/watch/working-with/app-groups/

答案 1 :(得分:-1)

我相信您可以为这两个应用设置一个ParseServer用户帐户管理