这个问题与:
- Fiori - 跨应用程序导航
- http://help.sap.com/saphelp_uiaddon10/helpdata/en/07/9561b716bb4f2f8ae4e47bacbdb86d/content.htm
- 删除路由上的 URL 参数
我的用例是这样的:
我有多个应用程序应该链接到其他应用程序(深度)。由于交叉导航的文档提到避免深度链接,我决定使用启动参数。
例如:
应用程序 A 在一个项目的详细视图中有一些项目的列表 有对另一个应用程序 B 的引用,其中包含一些其他详细信息。假设 A 显示文章详细信息,B 显示文章制作者的一些详细信息。
应用程序 A 现在将使用如下导航:
sap.ushell.Container.getService("CrossApplicationNavigation").hrefForExternal({
target : { semanticObject : "ApplicationB", action : "display" },
params : { "someID" : "102343333"}
})
现在在应用程序 BI 中,在 init 方法末尾的 Component.js 中使用这样的代码。
var oRouter = that.getRouter().initialize();
var oComponentData = this.getComponentData();
if (oComponentData.startupParameters) {
oRouter.navTo("SomeView", {
someId : oComponentData.startupParameters.someID[0],
}, false);
}
第一个问题:这是处理启动参数的正确位置吗?
第二个问题:如果我使用导航启动参数仍然会在代码中,我宁愿删除它,但如何?
更新
在目标应用程序 (B) 中,它将导致以下 URL:
https://server/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=100&sap-language=EN#SemObject-display?someID=102343333&/SomeView(102343333)/
无论如何,我希望有这样的东西:
https://server/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html?sap-client=100&sap-language=EN#SemObject-display?/SomeView(102343333)/