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

Javascript Launcpad标头后退按钮的事件处理程序,javascript,jquery,sapui5,Javascript,Jquery,Sapui5,在某些情况下,我需要覆盖Launchpad Header Back按钮的事件。我尝试了很多东西,比如: 试试看{ sap.ui.getCore().byId(“backBtn”).attachPress(此,函数(oEvent){ oEvent.preventDefault(); }.约束(这个); }捕捉(错误){ 控制台日志(err); }我自己过去在阻止默认的Fiori shell(launchpad)操作时遇到过问题。另一种方法可能是使用sap.ui.core.routing和/或(可

在某些情况下,我需要覆盖Launchpad Header Back按钮的事件。我尝试了很多东西,比如:

试试看{
sap.ui.getCore().byId(“backBtn”).attachPress(此,函数(oEvent){
oEvent.preventDefault();
}.约束(这个);
}捕捉(错误){
控制台日志(err);

}
我自己过去在阻止默认的Fiori shell(launchpad)操作时遇到过问题。另一种方法可能是使用sap.ui.core.routing和/或(可能您已经在应用程序中使用路由器)

它并不十分优雅,但您可以使用HashChanger的
hashChanged
事件来确定您的条件是否满足(即,当旧的hash=view 3的模式时),您可以启动
Router.navTo(“View1RouteName”)
。您还可以实例化
sap.ui.core.routing
对象,使用
History.getDirection()
确定方向是向前还是向后


确保您阅读了历史记录和HashChanger依赖项上的API,以便在正确的时间进行实例化。

我自己过去在阻止默认的Fiori shell(launchpad)操作时遇到过问题。另一种方法可能是使用sap.ui.core.routing和/或(可能您已经在应用程序中使用路由器)

它并不十分优雅,但您可以使用HashChanger的
hashChanged
事件来确定您的条件是否满足(即,当旧的hash=view 3的模式时),您可以启动
Router.navTo(“View1RouteName”)
。您还可以实例化
sap.ui.core.routing
对象,使用
History.getDirection()
确定方向是向前还是向后


确保阅读历史记录和HashChanger依赖项上的API,以便在正确的时间进行实例化。

首先需要在manifest.json中注册ShellUIService

在sap.ui5下的manifest.json中:

...
"sap.ui5": {
     ...
     "services": {
        "ShellUIService": {
            "factoryName": "sap.ushell.ui5service.ShellUIService"
        }
    }
    ...
}
...
然后,您可以覆盖控制器(或组件)中的默认行为


})

首先,您需要在manifest.json中注册ShellUIService

在sap.ui5下的manifest.json中:

...
"sap.ui5": {
     ...
     "services": {
        "ShellUIService": {
            "factoryName": "sap.ushell.ui5service.ShellUIService"
        }
    }
    ...
}
...
然后,您可以覆盖控制器(或组件)中的默认行为


})

Kyle-这是一个很好的解决方案。有没有办法恢复默认的反向导航操作?或者,当您需要默认行为时,您只是将其设置为类似于
window.history.go(-1)
?MatthewCReddy问得好,我不确定。我会按照你的建议使用历史。如果我发现了什么,我会告诉你的。凯尔-这是一个很好的解决方案。有没有办法恢复默认的反向导航操作?或者,当您需要默认行为时,您只是将其设置为类似于
window.history.go(-1)
?MatthewCReddy问得好,我不确定。我会按照你的建议使用历史。如果我发现了什么,我会告诉你的。