Fiori - 跨应用程序导航

问题描述 投票:2回答:1

我想在启动板中的应用程序之间导航。我发现很多搜索,通过ushell中的CrossApplicationNavigation是这样的。这是文档的链接(SAPUI5 SDK - 演示工具包)

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

我已经按照文档编写并编写了一段代码来创建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应用程序。

提前致谢,

vagley

sapui5 sap-fiori
1个回答
0
投票

你想在本地运行吗?因为如果是这样,那么它不会按预期工作,除非两个应用程序(您添加了跨应用程序代码的应用程序和'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");
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.