无法使用Xamarin.OAuth 2.0重定向到身份验证页面

时间:2018-03-27 17:23:08

标签: ios xamarin oauth-2.0 xamarin.ios native

目前我正在使用Xamarin表单来创建Android和iOS。现在我使用OAuth2.0进行登录功能。所以我在Xamarin iOS项目中创建了一个视图控制器。在AppDelegate类中,我从FinishedLaunching方法调用我的控制器视图。

像:

var mainController = new ViewController(); // Your view controller here
 mainController.ViewDidLoad();

在ViewDidLoad中编写OAuth2.0的逻辑并使用了 this.PresentViewController(authGui, true, null)。但在我的项目中,它没有重定向到页面并给出以下警告

Warning: Attempt to present <UINavigationController: 0x7fde4a9d6800> on
<ViewController: 0x7fde4a53f9d0> whose view is not in the window hierarchy!

1 个答案:

答案 0 :(得分:0)

无需手动触发ViewDidLoad()事件。我们假设您使用空白应用模板。您应该设置Window&#39; RootViewController来显示它,然后ViewDidLoad()事件将会触发。有关更多详细信息,请阅读有关iOS UIViewController的this documentation,另请参阅this post有关UIViewController的生命周期。

将此mainController带入窗口后,您可以使用this.PresentViewController(authGui, true, null)在屏幕上显示 OAuth视图

Authenticating Users with an Identity Provider告诉您如何在每个平台上实施 OAuth ,您应该仔细阅读。除了在iOS上,如果要重定向回应用,请在Info.plist中设置自定义网址。当它返回时,将调用事件OpenUrl(),在AppDelegate.cs中覆盖它。