0

在我的应用程序中有一些受保护的屏幕。这意味着用户在登录之前无法看到这些屏幕。我想知道如何在用户从重定向到登录屏幕的位置登录后将用户导航到其上一个屏幕。

就像在网站用户想要看到一些需要登录的页面然后管理员重定向到他的登录屏幕,当用户登录时,管理员将他重定向到他重定向到登录页面的页面..

谢谢

4

1 回答 1

1

为了澄清这一点,假设我们有一个 LoginScreen 并且应用程序单独维护一个“登录”状态,可以从任何地方进行测试。

在 BlackBerry Java 中实现此目的的最简单方法是在进入需要登录批准的屏幕之前推送 LoginScreen 并检查结果。您将 LoginScreen 作为模式屏幕推送(使用 pushModalScreen),一旦完成,您将再次检查登录状态。如果未登录,则不推送新屏幕。

另一种更复杂但意味着您将登录所需状态保持在屏幕内的替代方法使用框架调用的两种方法作为 ui 基础结构的一部分。其中第一个是

onUiEngineAttached(boolean attached)

您将将此方法添加到需要用户登录的任何屏幕。如果在附加标志设置为 true 的情况下调用此方法,则需要检查用户是否已登录。如果用户未登录,请推送登录屏幕。

第二种方法是

onExposed()

每当屏幕暴露时都会调用它,当然它会在 LoginScreen 完成之后调用。在这种方法中,您可以检查用户是否已登录 - 如果没有,则关闭屏幕。这假设您已经维护了屏幕堆栈,因此用户将返回到他们在登录要求屏幕之前来自的屏幕。有关这些方法的更多信息,请参阅文档。

第三种选择实际上是方法 1 的变体。如果用户未登录,则创建“登录屏幕”(SuccessScreen)无论如何准备推送,然后您还创建一个 LoginScreen,这就是您要做的推。您传入 LoginScreen、SuccessScreen(以及可能的 FailureScreen)。然后 LoginScreen 处理,如果它登录 OK,将弹出自己并推送应该显示的 SucessScreen 屏幕。如果失败,它会自行弹出并推送 FailureScreen 失败屏幕。这可能是最灵活的方法。

您选择哪一个是设计问题,而不是编码问题。我认为一切皆有可能,一切都会完成。

于 2013-10-08T08:53:34.827 回答