1

Xamarin.Auth 1.3.2 版本支持 UWP 应用。我已经在 Android 和 IOS 中创建并实现了应用程序,如下所示

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

对于安卓:

StartActivity (auth.GetUI (this));

我想知道如何在 xamarin.Form UWP 渲染器中使用 auth.GetUI() 。

4

4 回答 4

0

我有这个(主要)在 UWP 上工作。https://github.com/xamarin/Xamarin.Auth/issues/146的线程中的详细信息。(大部分)的细节也在那个线程中。

于 2017-03-16T19:00:07.800 回答
0

我被同样的问题困住了,我从一开始就关注这个帖子,因为我试图同时做同样的事情。我有一个共享项目、一个 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-xamarin-auth/ 。我按照其中提到的说明进行操作,效果很好。

希望它会帮助某人。

于 2017-02-24T13:53:12.483 回答
0

您的问题的直接答案是 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);
于 2017-08-30T05:13:15.037 回答
0

auth.GetUI ()UWP 项目中 的返回类型为Windows.UI.Xaml.Controls.Page. PageRenderer因此,您可以在 UWP 项目中创建自定义并设置本机控件,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
     {
     }
 }
于 2017-02-22T11:32:30.863 回答