Launcpad标头后退按钮的事件处理程序

2020-08-27 01:23发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在某些情况下,我需要覆盖Launchpad Header Back Button的事件。 我尝试了很多类似的事情:

尝试{
 sap.ui.getCore()。byId(" backBtn")。attachPress(this,function(oEvent){
 oEvent.preventDefault();
  } .bind(this));
 } catch(err){
 console.log(err);
 }
 

或者:

 $('body')。mousedown(function(e){


 var oTarget = $(e.target);


 console.log(oTarget [0] .offsetParent.id);
 console.log(oTarget [0]);
 如果(oTarget [0] .offsetParent.id ===" backBtn"){
 console.log(" prevent");
 e.preventDefault();
 e..stopPropagation();
 返回false;
 }


 } .bind(this));
 

在这些代码中,我只是试图阻止导航。 没用 在某些情况下,我想导航到某些视图。 例如:

如果用户在视图3中->单击启动板后退按钮->导航到视图1(不是先前的导航目标)

但是我无法停止导航机制以返回到先前的目标。

我将不胜感激。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在某些情况下,我需要覆盖Launchpad Header Back Button的事件。 我尝试了很多类似的事情:

尝试{
 sap.ui.getCore()。byId(" backBtn")。attachPress(this,function(oEvent){
 oEvent.preventDefault();
  } .bind(this));
 } catch(err){
 console.log(err);
 }
 

或者:

 $('body')。mousedown(function(e){


 var oTarget = $(e.target);


 console.log(oTarget [0] .offsetParent.id);
 console.log(oTarget [0]);
 如果(oTarget [0] .offsetParent.id ===" backBtn"){
 console.log(" prevent");
 e.preventDefault();
 e..stopPropagation();
 返回false;
 }


 } .bind(this));
 

在这些代码中,我只是试图阻止导航。 没用 在某些情况下,我想导航到某些视图。 例如:

如果用户在视图3中->单击启动板后退按钮->导航到视图1(不是先前的导航目标)

但是我无法停止导航机制以返回到先前的目标。

我将不胜感激。

付费偷看设置
发送
2条回答
何必丶何苦呢
1楼-- · 2020-08-27 01:58

你好,我很久以前就要做,这是这样的:

这在您的主控制器中,因此当您退出应用程序时,它将建立先前的内容。

您还可以对其进行调试,然后您将看到它的正常工作,只需放入该代码即可。

 onInit:function(){
         fBackButton = sap.ui.getCore()。byId(" backBtn")。mEventRegistry.press [0] .fFunction;
 },

 onExit:function(){
 sap.ui.getCore()。byId(" backBtn")。mEventRegistry.press [0] .fFunction = fBackButton;
 },
 

在其他视图上,onInit上或需要更改按钮的位置:

 sap.ui.getCore()。byId(" backBtn")。mEventRegistry.press [0] .fFunction = function(){
//......
 }
 

此致。

huskylover
2楼-- · 2020-08-27 01:49

嘿,埃菲坎,

您可以使用以下代码处理导航事件,

在sap.ui5部分下的Manifest.json文件中,添加以下服务,

 ...
 " sap.ui5":{
      "服务": {
         " ShellUIService":{
             " factoryName":" sap.ushell.ui5service.ShellUIService"
         }
     }
     ...
 }
 ... 

之后,您可以覆盖控制器或组件文件中的默认行为,如下所示,

对于我来说,我已经在onInit函数中添加了代码

 this.getOwnerComponent()。getService(" ShellUIService")。then(function(oShellService){
     oShellService.setBackNavigation(function(){
        //不执行任何操作来禁用它,或者添加您自己的导航返回逻辑以进行导航
     });
 }); 

此致

Laxman Kadolkar

一周热门 更多>