繁体   English   中英

Xamarin形成+ prism登录流程

[英]Xamarin forms + prism login flow

我是Xamarin Forms的新手(也是Prism中的新手)我正在尝试创建我的第一个xamarin表单应用程序并需要一个登录流程。

我试图检查用户是否登录了application.OnInitialized方法(并根据结果显示Login或Main页面)。 但问题是,如果我显示登录页面,然后登录后我显示主页面,那么用户可以使用硬件按钮导航到登录页面..

然后我试图在主页面的OnNavigationTo中检查这个,但它也不起作用。 我在PRE版本和稳定版本中检查了这个并且有不同的错误。 在其中一个导航只是没有工作,在另一个 - 我得到一个错误,主页无法创建。

然后我尝试将导航服务注入MainPage(不是视图模型),但我发现导航服务无法注入那里。

然后我决定在base之后从view发送消息.OnAppearing并在视图模型中订阅该消息,并根据需要进行导航登录作为回调。 但是有一个非常奇怪的问题。 如果我在MainPage上使用ToolBarItems,那么在Windows手机上它从登录页面导航后就消失了(但突然,Windows手机上的登录页面有工具栏项目),看起来像Windows手机上的OnAppearing方法在工具栏项目加载之前触发。 无论如何,这不是一个解决方案。

然后我决定添加一个空白页面并在base.onAppearing进入视图模型后发送消息,在该视图模型中我重定向到Login或主页面。 所以,它适用于一个小“BUT”。 如果我按下登录页面或主页面上的硬件返回按钮,我不会关闭应用程序,因为我导航到空白页面,重定向到登录页面或主页面。

有没有一种正确的方法来使用棱镜实现登录流程? 我真的很喜欢它,因为它是非常强大的框架..提前感谢!

请记住,OnNavigatedTo仅在使用最新预览版本并调用NavigationService.Navigate时才有效。 这里有几种方法。 首先,您可以导航到MainPage,然后检查OnNavigatedTo。 如果未登录,请导航到LoginPage。 你也可以检查App启动。 显示LoginPage时,可以使用绝对URI替换整个导航堆栈。 基本上这是设置MainPage = new MainPage()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM