0

在 Fiori Launchpad 中,当我在一个应用程序中时,如果我单击我的用户名,然后单击关于,我会得到这个漂亮的弹出窗口,其中包含有关我的应用程序的一些信息。现在我明白这是我可以自定义为可见是或否的东西,但我的问题是:如何以编程方式访问此对话框。如果我单击链接,我会看到出现 Div“aboutContainerDialogID”。然而,一旦关闭,它就会从 DOM 中完全删除。我在许多标准 SAP js 文件中进行了搜索,但未能成功追踪对话框。

我的目标:我想将快捷方式绑定到此对话框。如果用户输入键盘快捷键,则必须出现对话框。我修复了快捷方式,对话框还没有。任何帮助或提示将不胜感激。

4

2 回答 2

0
sap.ui.getCore().byId("aboutBtn").firePress();

//最好放入try catch方法..以防万一按钮不可用。

更新:动作是根据 App 和当前屏幕用户所在的动态构建的。

所以当我们使用上面的代码时,它可能会像@Matti所说的那样失败。我看到的最好的解决方案是触发第一次按下动作按钮..

try{
    sap.ui.getCore().byId("aboutBtn").firePress();  
}catch(e){
    sap.ui.getCore().byId("actionsBtn").firePress(); //this creates action menu
    sap.ui.getCore().byId("aboutBtn").firePress();
}

我同意这不是一个干净的解决方案。//如果我发现更好的东西会更新..

于 2015-11-02T03:57:52.633 回答
0

好的,我找到了一种不使用按钮的方法。这使得它在使用无头配置运行时也可以工作。这是代码:

new sap.ushell.ui.footerbar.AboutButton().firePress();

我在 onInit() 上加载的控制器中有以下函数:

registerKeyListeners: function() {
  var map = [];
  onkeydown = onkeyup = function(e) { //eslint-disable-line
         e = e || event; //eslint-disable-line
         map[e.keyCode] = e.type === "keydown";
   };

   window.addEventListener("keydown", function(e) { //eslint-disable-line

          if (map[17] && map[112]) {
            new sap.ushell.ui.footerbar.AboutButton().firePress(); //eslint-disable-line
            map = [];
         }

   });
},

这允许我使用组合键 Control 和 F1 来请求当前应用程序的信息。

于 2015-11-20T14:24:47.543 回答