如何在Nativescript 6中的后退按钮事件上导航到特定页面

时间:2019-07-25 11:36:36

标签: nativescript

当我使用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

1 个答案:

答案 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)
}