【问题标题】:How to navigate from launchpad to Fiori apps and then back?如何从启动板导航到 Fiori 应用程序然后返回?
【发布时间】:2021-01-08 06:41:34
【问题描述】:

在我们公司,我们设置了 Fiori 启动板,我们在其中配置了一个磁贴,该磁贴链接到一个定制开发的 SAPUI5 应用程序,该应用程序作为 BSP 部署在服务器上。我们花了很长时间,但在该应用程序中使用路由器模式,我们设法使从 Launchpad 磁贴到自定义 UI5 应用程序的导航正常工作。

然而,我们正在努力解决的问题是另外两条导航路径:

  • 从应用程序返回到 Fiori 启动板(返回主页)
  • 从应用程序到另一个应用程序(磁贴到磁贴)

理想情况下,这种脱离应用程序导航的方式是 UI5 方式,包括转换,因此不仅仅是 JS 中的 window.replace。经过长时间的搜索,我发现支持这种情况的唯一提示是在这个类中:

https://sapui5.hana.ondemand.com/sdk/#docs/api/symbols/sap.ushell.services.CrossApplicationNavigation.html

但是,我不明白如何使用它。该示例甚至不正确,并且存在语法错误。我在其他地方发现了 2 个论坛帖子询问如何使用它,但他们缺乏任何有意义的答案。

【问题讨论】:

  • 如何从 Launchpad 导航到您的应用程序?您是否使用Semantic Objects 的就地导航?

标签: sapui5


【解决方案1】:

假设您使用 Semantic Objects 在 Launchpad 中配置就地导航以导航到 UI5 应用程序,您可以使用您已经提到的 CrossApplicationNavigation 服务从一个应用程序导航到另一个应用程序。但是,有关它的文档有些混乱。这对我来说是这样的:

// Step 1: Get Service for app to app navigation
var navigationService = sap.ushell.Container.getService("CrossApplicationNavigation");

// Step 2: Navigate using your semantic object
navigationService.toExternal({ 
                               target : { semanticObject : "<YourObject>", action: "<YourAction>" },
                               params : { A : "B" } // optionally
                            })

如果您想在原地导航后返回启动板,您只需调用

window.history.go(-1)

这仍然会触发正确的转换。

【讨论】:

  • 嗨,蒂姆,对我来说,window.history.go(-1) 仅在我进入我的 Fiori 应用程序并按下后退按钮时才有效。如果我单击一个列表项或详细视图项,它不起作用,返回所选项目列表...您知道如何避免此错误吗?
猜你喜欢
  • 2018-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多