Xamarin.forms无法使用Xamarin.Auth和特定的android平台

时间:2017-03-23 10:38:45

标签: c# android authentication login xamarin.forms

我正在Xamarin.Forms应用程序中实现身份验证。我正在看这个样本“TodoAWSAuth - Configuring Google as an OAuth identity provider”。在我的特定于android的OAuthLoginPresenter的实现中,我有这样的代码:     使用Xamarin.Auth;

 namespace InstagramApp.Droid
 {
   public class OAuthLoginPresenter
   {
      public void Login(Authenticator authenticator)
      {
        Xamarin.Forms.Forms.Context.StartActivity(authenticator.GetUI(Xamarin.Forms.Forms.Context));
      }
   }
 }

我:

Xamarin.Forms.Forms.Context.StartActivity(authenticator.GetUI(Xamarin.Forms.Forms.Context));

给我回复:

参数1:无法从'object'转换为'System.Type'

与链接中的示例相同。可能是什么问题?

同样在Xamarin文档中,代码是相同的: Xamarin.Auth documentation

感谢所有

2 个答案:

答案 0 :(得分:1)

*编辑:下面的API可能已随Xamarin.Auth 1.5而改变。见moljac的回答。

对我来说,我正在使用该活动启动登录页面并传入上下文,但我也在ContentPage渲染器的OnElementChanged()方法中运行以下代码:

Android.App.Activity activity = Context as Android.App.Activity;

//Initialize authenticator

activity.StartActivity(auth.GetUI(activity));

答案 1 :(得分:1)

Xamarin.Auth 1.4.x支持自定义标签和SafariViewController,但没有Xamarin.Forms支持大多数用户想要的内容。 Xamarin.Forms支持即将发布1.5.0-alpha。

从回购中提取的样本:

https://github.com/moljac/Xamarin.Auth.Samples.NugetReferences

漫画书是Xamarin.Forms

提供者传统/标准

那些会让你知道如何做到这一点。