当我使用nativescript 5时,我编写了一些代码来捕获android上的后退按钮事件,并且运行良好,但是升级到nativescript 6后,出现了奇怪的行为:
1-如果清除历史记录设置为true,则应用导航到该页面,然后关闭。
2-如果清除历史记录设置为false,它将导航到该页面,然后导航回到上一页。
此行为的示例:
假设我想让该应用在按下后退按钮时导航到A页, 并且我在页面B中,所以两个奇怪的行为是:
clearHistory: true
该应用程序导航到页面A并关闭。
clearHistory: false
该应用程序导航到A并返回到B。
代码如下:
if (application.android) {
application.android.on(application
.AndroidApplication
.activityBackPressedEvent, backEvent);
}
function backEvent(){
console.log('pressed')
const navigationEntry = {
moduleName: 'views/mainPage/main-page',
animated: true,
clearHistory: false,
transition: {
name: "slideLeft",
duration: 380,
curve: "linear"
}
}
frame.topmost().navigate(navigationEntry)
}
在本机脚本6中我想念一些东西吗?
项目github存储库 here
答案 0 :(得分:2)
如果您想在后退按钮上导航,则必须首先通过将cancel标志设置为true来取消后退导航。
function backEvent(args) {
args.cancel = true;
console.log('pressed')
const navigationEntry = {
moduleName: 'views/mainPage/main-page',
animated: true,
clearHistory: false,
transition: {
name: "slideLeft",
duration: 380,
curve: "linear"
}
}
frame.topmost().navigate(navigationEntry)
}