绝对 URI 不起作用
Absolute URI won't work
Visual Studio 2017 年,最新 Xamarin.Forms,最新 Prism。
无论我怎样尝试,我的绝对 URI 都无法正常工作。我的应用程序从 app.xaml 启动到登录页面。在 loginpageviewmodel 中,我做了一些检查以查看用户是否经过身份验证,如果是,那么我想导航到主页。
我可以在不使用绝对 uri 时导航到主页并且它可以工作 - 但后退按钮返回到登录页面 - 不需要。
代码:
if (user.isAuthenticated)
{
navigationService.NavigateAsync("/AppMasterDetailPage/NavigationPage/MainPage"));
}
我已经添加了所有的 http:// 和 myapp.com,等等......我试过都没有用。
如何更改 uri 以便 absolute 导航到正确的主页并禁止后退按钮返回登录页面?
您可以查看以下使用 "Login Screen" 和汉堡菜单的 sample project。
我还没有测试来自 OnNavigatingTo
的尝试导航,但我不希望它能正常工作,因为页面实际上还没有被推送到堆栈。也就是说,如果您检查用户是否在 OnNavigatedTo
中通过身份验证,您可以毫无问题地执行导航。如果您不希望您的用户看到 LoginPage,那么我能告诉您的最好办法是首先导航到一个 SplashScreen,然后从那里执行您的逻辑以决定是转到您的 LoginPage 还是 MasterDetailPage
我有办法...
我已经 app.xaml 导航到登录页面。在 OnNavigatedTo 方法中,我检查用户身份验证。如果通过身份验证,那么我会调用
NavigatgeAsync("/masterpage/navpage/mainpage");
这让我进入应用程序的正确主页,后退按钮不会返回登录页面 - 它会按预期退出应用程序。所以“/masterpage...”是我正在寻找的绝对 uri。
下次您应该这样做 _navigationService.NavigateAsync( new Uri("http://www.xxxx.com/Index/Navigation/Home", UriKind.Absolute));
这是在您通过身份验证并注入 NavigationService
.
之后
Visual Studio 2017 年,最新 Xamarin.Forms,最新 Prism。
无论我怎样尝试,我的绝对 URI 都无法正常工作。我的应用程序从 app.xaml 启动到登录页面。在 loginpageviewmodel 中,我做了一些检查以查看用户是否经过身份验证,如果是,那么我想导航到主页。
我可以在不使用绝对 uri 时导航到主页并且它可以工作 - 但后退按钮返回到登录页面 - 不需要。
代码:
if (user.isAuthenticated)
{
navigationService.NavigateAsync("/AppMasterDetailPage/NavigationPage/MainPage"));
}
我已经添加了所有的 http:// 和 myapp.com,等等......我试过都没有用。
如何更改 uri 以便 absolute 导航到正确的主页并禁止后退按钮返回登录页面?
您可以查看以下使用 "Login Screen" 和汉堡菜单的 sample project。
我还没有测试来自 OnNavigatingTo
的尝试导航,但我不希望它能正常工作,因为页面实际上还没有被推送到堆栈。也就是说,如果您检查用户是否在 OnNavigatedTo
中通过身份验证,您可以毫无问题地执行导航。如果您不希望您的用户看到 LoginPage,那么我能告诉您的最好办法是首先导航到一个 SplashScreen,然后从那里执行您的逻辑以决定是转到您的 LoginPage 还是 MasterDetailPage
我有办法...
我已经 app.xaml 导航到登录页面。在 OnNavigatedTo 方法中,我检查用户身份验证。如果通过身份验证,那么我会调用
NavigatgeAsync("/masterpage/navpage/mainpage");
这让我进入应用程序的正确主页,后退按钮不会返回登录页面 - 它会按预期退出应用程序。所以“/masterpage...”是我正在寻找的绝对 uri。
下次您应该这样做 _navigationService.NavigateAsync( new Uri("http://www.xxxx.com/Index/Navigation/Home", UriKind.Absolute));
这是在您通过身份验证并注入 NavigationService
.