如何将Xamarin.auth用于UWP登录渲染器



xamarin.auth 1.3.2版本是支持UWP应用程序。我已经在Android和iOS中创建并实现了如下

的应用程序

PresentViewController (auth.GetUI (), true, null);

和适用于Android:

StartActivity (auth.GetUI (this));

我想知道如何在xamarin.form uwp Renderer中使用auth.getui()。

UWP项目中auth.GetUI ()的返回类型是Windows.UI.Xaml.Controls.Page。因此,您可以在UWP项目中创建自定义PageRenderer,并将本机控制设置为Windows.UI.Xaml.Controls.Page,就像以下代码一样。

用法

public class LoginPageRenderer : PageRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
        {
            base.OnElementChanged(e);
            if (Control == null)
            {
               SetNativeControl(new NativeLoginPage());    
            }
        }          
    }

nativeloginpage

添加nativeloginpage <Frame x:Name="Myframe " />的框架。

 private void btn_Click(object sender, RoutedEventArgs e)
 {
     var auth = new OAuth2Authenticator(
         clientId: "",
         scope: "",
         authorizeUrl: new Uri(""),
         redirectUrl: new Uri("")
         );
     auth.Completed += Auth_Completed;
     var page = auth.GetUI();
     Myframe.Navigate(auth.GetUI());
 }
 private void Auth_Completed(object sender, AuthenticatorCompletedEventArgs e)
 {
     if (e.IsAuthenticated)
     {
     }
     else
     {
     }
 }

我遇到了同样的问题,从一开始就一直关注帖子,因为我试图同时做同样的事情。我有一个共享项目和一个iOS项目和一个UWP项目(代表我没有Android)。我对iOS没有问题,它的工作就像魅力。但是,我无法用UWP最终确定Pagerenderer。

所以我遵循了Nico Zhu的推荐。我在UWP项目中添加了XAML用户控件。如上所述,我还添加了XAML中的框架。但是,当执行语句myframe.navigate(auth.getui())时,我得到了一个" XAML解析失败"错误

但后来我找到了:http://damianblog.com/2016/09/04/uwp-oauth-in--xamarin-forms-using-usis-using-xamarin-auth/。我遵循其中提到的说明,它效果很好。

希望它能帮助某人。

我(主要是)在UWP上工作了。线程中的详细信息https://github.com/xamarin/xamarin.auth/issues/146。该线程(主要)的详细信息。

直接回答您的问题是UWP的以下代码段:

Windows.UI.Xaml.Controls.Frame root_frame = Windows.UI.Xaml.Window.Current.Content as Windows.UI.Xaml.Controls.Frame;
root_frame.Navigate(auth.GetUI(), auth);

相关内容

  • 没有找到相关文章

最新更新