簡體   English   中英

Fiori啟動板應用程序中的“關於對話框”

[英]“About Dialog” in Fiori Launchpad Applications

在Fiori Launchpad中,當我處於應用程序中時,如果我單擊我的用戶名,然后單擊“關於”,那么我會得到一個漂亮的彈出窗口,其中包含有關應用程序的一些信息。 現在我知道這是我可以自定義為可見的是或否的內容,但是我的問題是:如何以編程方式訪問此對話框。 如果單擊鏈接,我確實會看到Div出現“ aboutContainerDialogID”。 但是,一旦關閉,它將完全從DOM中刪除。 我已經搜索了許多標准SAP js文件,但未能成功找到該對話框。

我的目標:我想將快捷方式綁定到此對話框。 如果用戶輸入鍵盤快捷鍵,則必須顯示對話框。 我修復了快捷方式,對話框尚未修復。 任何幫助或提示,將不勝感激。

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();
}

我同意這不是一個干凈的解決方案。 //如果我發現更好的東西,將會更新。

好的,我找到了一種無需使用按鈕即可執行此操作的方法。 這使得它在以無頭配置運行時也能正常工作。 這是代碼:

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鍵的組合來請求當前應用程序的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM