我正在跟踪这一页和一些来自Xamarin.Auth github的示例,所以设置一个facebook登录。我创建了以下登录函数:
public void Authenticate()
{
string clientId = Config.FacebookAppID;
string redirectUri = redirectUri = "MyApp:/authorize";
var authenticator = new OAuth2Authenticator(
clientId: clientId,
scope: "public_profile,email",
authorizeUrl: new Uri("https://www.facebook.com/v2.9/dialog/oauth"),
redirectUrl: new Uri(redirectUri),
getUsernameAsync: null,
isUsingNativeUI: true);
authenticator.AllowCancel = true;
authenticator.Completed += OnAuthCompleted;
authenticator.Error += OnAuthError;
Authenticator = authenticator;
var presenter = new Xamarin.Auth.Presenters.OAuthLoginPresenter();
presenter.Login(Authenticator);
}但是,在最后一行中,我得到了以下例外:
{System.NullReferenceException: Object reference not set to an instance of an object.
at Xamarin.Auth.Presenters.OAuthLoginPresenter.Login (Xamarin.Auth.Authenticator authenticator) [0x00011] in C:\cxa\source\Xamarin.Auth.LinkSource\Request.cs:290
at MyApp.Components.AuthorisationManager.Authenticate () [0x00078] in D:\Dev\MenuSystem.AdminApp\MyApp\MyApp\MyApp\Components\AuthorisationManager.cs:56
at MyApp.ViewModels.MainPageViewModel.NavigateToMenuItem () [0x00008] in D:\Dev\MenuSystem.AdminApp\MyApp\MyApp\MyApp\ViewModels\MainPageViewModel.cs:63 }你知道我做错了什么吗?
发布于 2018-11-05 23:44:04
我知道这已经有一年多的历史了,然而,在一次有指导的链接式训练之后,我遇到了同样的问题。
答案是在AuthenticationConfiguration类中的FinishedLaunching方法中初始化AppDelegate。
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
// Override point for customization after application launch.
// If not required for your application you can safely delete this method
// Add the Init() method here
global::Xamarin.Auth.Presenters.XamarinIOS.AuthenticationConfiguration.Init();
return true;
}https://stackoverflow.com/questions/46136998
复制相似问题