3

我正在使用NativeScript + Angular 2开发跨平台移动应用程序。

我想处理当前视图的后退按钮单击,即当用户单击 android 设备中的后退按钮时,我想执行诸如杀死/从堆栈中删除当前视图的操作。

例如:在 android 平台(本机开发)中,我们可以使用finish()Activity 的方法将其从堆栈中删除。我们可以像处理 onBackPressed() 一样 -

@Override
public void onBackPressed()
{
    finish();  //Removes current Activity from stack
}

那么有什么方法可以在NativeScript + angular 2onBackPressed()中处理和方法吗?我用谷歌搜索了很多,但没有找到任何解决方案,还尝试了 NativeScript + Angular 2,但对我没有用。它在 NativeScript + JavaScript 中运行良好。finish()Frame.goBack()

更新

我想从堆栈中永久删除视图,因为应用程序中不再需要它。它应该在应用安装时首次显示。

例如:

喜欢登录屏幕

1) 安装应用程序时,应显示登录屏幕,并且在下次启动应用程序时,应用程序将自动跳过登录屏幕并移至主屏幕(这工作正常)

2)但问题是当我从主屏幕按下后退按钮时,应用程序每次都会导航到登录屏幕,因为登录屏幕仍然存在于堆栈中。所以这就是为什么我想从堆栈中永久删除登录屏幕。

4

1 回答 1

3

你需要实现的返回是注入Location并使用方法back()

import {Location} from '@angular/common';

@Component({ ... })
export class MyComponent {
    constructor(private location: Location) { }

    public goBack() {
        this.location.back();
    }
}

此时,当用户返回时,您不必担心显式破坏视图,因为没有“前进”的移动选项

于 2016-06-27T13:26:44.247 回答