Redirect Xamarin.Auth无法使用Trakt完成

Redirect Xamarin.Auth无法使用Trakt完成,redirect,mobile,xamarin.auth,Redirect,Mobile,Xamarin.auth,我正在使用Xamarin作为Trakt客户端构建一个应用程序。为了验证用户,我使用Xamarin.Auth,因为它跨平台。但是,身份验证成功后,它不会调用已完成的事件处理程序。该事件仅在我单击“上一步”按钮时调用,但它返回一个空帐户对象,并返回false IsAuthenticated。 我想知道这是否是因为重定向uri无效 请看下面我的代码 [assembly: ExportRenderer(typeof(LoginView), typeof(LoginViewRenderer))] name

我正在使用Xamarin作为Trakt客户端构建一个应用程序。为了验证用户,我使用Xamarin.Auth,因为它跨平台。但是,身份验证成功后,它不会调用已完成的事件处理程序。该事件仅在我单击“上一步”按钮时调用,但它返回一个空帐户对象,并返回false IsAuthenticated。 我想知道这是否是因为重定向uri无效

请看下面我的代码

[assembly: ExportRenderer(typeof(LoginView), typeof(LoginViewRenderer))]
namespace ShowsCalendar.Droid.ViewRenderer
{
public class LoginViewRenderer : PageRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
    {
        base.OnElementChanged(e);

        var context = Forms.Context;

        var baseAddress = ConfigHelper.TraktAPIURL;
        var auth = new OAuth2Authenticator(
            clientId: ConfigHelper.ClientID,
            redirectUrl: new Uri("urn:ietf:wg:oauth:2.0:oob"),
            scope: "",
            authorizeUrl: new Uri(baseAddress + "/oauth/authorize?response_type=code")
            );
        auth.AllowCancel = true;
        auth.Completed += AuthenticateCompleted;            
        var intent = auth.GetUI(context);
        context.StartActivity(intent);
    }

    private void AuthenticateCompleted(object sender, AuthenticatorCompletedEventArgs e)
    {
        if (!e.IsAuthenticated)
        {
            return;                
        }
        App.AccessToken = e.Account.Properties["access_token"].ToString();
        AccountStore.Create().Save(e.Account, "Trakt");
    }
}
[程序集:导出渲染器(typeof(LoginView),typeof(LoginView渲染器))]
命名空间ShowsCalendar.Droid.ViewRenderer
{
公共类LoginViewRenderer:PageRenderer
{
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
var-context=Forms.context;
var baseAddress=ConfigHelper.traktapirl;
var auth=新的OAuth2Authenticator(
clientId:ConfigHelper.clientId,
重定向URL:newURI(“urn:ietf:wg:oauth:2.0:oob”),
范围:“,
authorizeUrl:新Uri(baseAddress+“/oauth/authorize?响应类型=代码”)
);
auth.AllowCancel=true;
auth.Completed+=AuthenticateCompleted;
var intent=auth.GetUI(上下文);
背景。开始触觉(意图);
}
私有void AuthenticateCompleted(对象发送方、AuthenticatorCompletedEventArgs e)
{
如果(!e.IsAuthenticated)
{
返回;
}
App.AccessToken=e.Account.Properties[“access_token”].ToString();
AccountStore.Create().Save(例如Account,“Trakt”);
}
}
}