IBM Worklight 6.0 - 如何覆盖后退按钮?

Posted

技术标签:

【中文标题】IBM Worklight 6.0 - 如何覆盖后退按钮?【英文标题】:IBM Worklight 6.0 - How to override the Back button? 【发布时间】:2013-09-09 05:05:07 【问题描述】:

我使用 Dojo 1.9 开发了一个 Worklight 应用程序。在我返回上一个视图的应用程序中,我在应用程序的标题中使用了一个后退按钮。

返回按钮代码

<div data-dojo-type="dojox.mobile.Heading"
                data-dojo-props="label:'View2 Details',back:'View1', moveTo:'view1'" style="background-color: maroon">
                </div>

是否可以使用设备的后退按钮导航到上一个视图?这样我就可以在我的应用中使用这两种方法了吗?

【问题讨论】:

【参考方案1】:

不过,我不熟悉 Dojo 中“页面”的概念:

是的,有WL.App.overrideBackButton,您可以使用它来覆盖默认的 android 后退按钮功能(退出应用程序),而是调用将加载不同视图的回调。

请注意,当应用程序在索引页面中时,为了恢复“退出”功能,您需要使用WL.App.resetBackButton 以便用户能够像她/他习惯那样退出应用程序在 Android 中。

如何处理带历史的多页导航,请看相关话题in this training module。您必须将代码调整为您在 Dojo 中使用的代码。

【讨论】:

感谢您的回复。我添加了 WL.App.overrideBackButton(backFunc);在 wlCommonInit() 函数中,我还添加了函数 backFunc(),但在我的情况下我应该如何处理该事件。我怎么知道按下了哪个页面后退按钮。在我的项目中,我在 3 个不同的视图中有 3 个后退按钮。 您需要处理用户操作的历史记录,并在她/他按下“返回”按钮时冒泡。 在此处查看标题为“使用历史记录实现多页导航”的部分:public.dhe.ibm.com/software/mobile-solutions/worklight/docs/…【参考方案2】:

两种替代解决方案:

    最简单的方法是依赖 Dojo Mobile 的“书签” 特征。有关详细信息,请参阅 https://dojotoolkit.org/reference-guide/dojox/mobile/bookmarkable.html。 现场示例: http://download.dojotoolkit.org/release-1.9.0/dojo-release-1.9.0/dojox/mobile/tests/test_bk_force-list.html。从主页转换后,按浏览器的返回 桌面浏览器上的按钮,或 Android 设备的后退按钮, 触发返回初始视图的转换。

    对于需要导航的相对复杂的应用程序的更明智的解决方案 历史管理将是使用 dojox/app 构建您的应用程序。请参阅http://dojotoolkit.org/reference-guide/1.9/dojox/app.html 的文档和https://dojotoolkit.org/documentation/tutorials/1.9/dojox_app/ 的教程。

【讨论】:

感谢您的回复。我使用书签功能及其工作,但是当它在索引页面中时如何退出应用程序,我的意思是如果我从索引页面按返回按钮,我希望我的应用程序退出。有没有可能。 使用这个“书签”,我如何在到达特定页面/视图时重置书签堆栈。这在道场中可能吗?

以上是关于IBM Worklight 6.0 - 如何覆盖后退按钮?的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0 - 如何将 Worklight 应用程序部署到 Worklight Server?

IBM Worklight 6.0 - 将适配器部署到 Worklight Server 后出现 wl_antiXSRFRealm 错误

IBM Worklight 6.0 - 添加 Worklight 文件条目选项时遇到问题

IBM Worklight 6.0 - 启用控制台登录身份验证后混合端口号?

IBM Worklight 6.0 - Dojo 库在部署后使用 localhost

IBM Worklight 6.0 - 如何绑定数据源?