gpt4 book ai didi

sapui5 - Fiori - 跨应用程序导航

转载 作者:行者123 更新时间:2023-12-02 04:51:22 24 4
gpt4 key购买 nike

我想在启动板中的应用程序之间导航。我通过大量搜索发现,通过 ushell 中的 CrossApplicationNavigation 是一种方法。这是文档的链接(SAPUI5 SDK - Demo Kit)

启动板中的每个应用程序都有“语义对象”和“ Action ”以供进一步导航。

我遵循文档并编写了以下代码来创建 CrossApplicaionNavigation 服务。

var fgetService =sap.ushell && sap.ushell.Container && sap.ushell.Container.getService;
this.oCrossAppNavigator = fgetService && fgetService("CrossApplicationNavigation");

只是为了确保 oCrossAppNavigator 服务正确启动,编写了以下代码。
var hashForApp =  this.oCrossAppNavigator.hrefForExternal({
rget : { semanticObject : "SalesOrder",action : "create" }
});
console.log("Hash for the application: " + hashForApp);

console Output: #SalesOrder-create

因此,知道该服务有效,我编写了以下代码来导航到“SalesOrder”应用程序和“创建”操作。
this.oCrossAppNavigator.toExternal({
target : { semanticObject : "SalesOrder",action : "create" }
});

这是我的问题。上面的语句既不会进入 SalesOrder 应用程序,也不会在控制台中打印任何错误。
它应该使用上述哈希码更新 URL 并转到该应用程序。

注意:使用上述哈希码手动更改 URL 将正确转到 SalesOrder 应用程序。

提前致谢,

瓦格利

最佳答案

您是否尝试在本地运行它?因为如果是这样,那么它不会按预期工作,除非两个应用程序(您添加了跨应用程序代码 的应用程序和 'SalesOrder-create' 应用程序)都在“local sandbox”中运行

但是,如果您尝试在 SAP 开发/测试系统上的 Fiori Launchpad 中安装的应用程序中运行这段代码,其中 在同一个启动板上具有“SalesOrder-create”应用程序,那么它应该可以正常工作.

也可以使用下面的方式来检查跨应用服务是否正常工作,因为看起来你的代码总是输出 #SalesOrder-create

if (sap.ushell && sap.ushell.Container && sap.ushell.Container.getService)
{
var oCrossAppNavigator = sap.ushell.Container.getService("CrossApplicationNavigation");

oCrossAppNavigator.toExternal({
target: { semanticObject : "SalesOrder", action: "create" }, //the app you're navigating to
// params : { param1:data, param2:data}
});
}
else
{
jQuery.sap.log.info("Cannot Navigate - Application Running Standalone");
}
}

关于sapui5 - Fiori - 跨应用程序导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com