【发布时间】:2019-04-09 13:58:02
【问题描述】:
我正在开发适用于 Android 和 iOS 的 NativeScript-Angular 应用程序,但在标准后退按钮导航方面遇到了问题。我已经解决了 Android 的问题,但找不到 iOS 的解决方案。
返回到需要路由数据的特定页面时,该事件导致问题,导致异常:
“错误:当前在页面返回导航中 - 应重新附加组件而不是激活组件”。
我的 Android 解决方案捕获后退按钮事件并取消它,然后调用路由器进行导航。
ngOnInit() {
if (app.android) {
app.android.on(app.AndroidApplication.activityBackPressedEvent,
(args: any) => this.backEvent(args));
}
}
backEvent(args) {
args.cancel = true;
this.backToRegister(false);
}
backToRegister(accepted: boolean){
this.router.navigate(['/register',
this.registerParametersEntered.password,
this.registerParametersEntered.confirmPassword,
this.registerParametersEntered.code,
this.registerParametersEntered.email,
accepted]);
}
我想在 iOS 上做一些类似的事情,比如:-
if (app.ios) {
this.page.on('navigatingFrom', (data) => {
// TODO cancel the back button event
this.backToRegister(false);
})
}
我找不到为 iOS 执行此操作的方法 - 我的研究使我得出结论,无法取消 iOS 后退按钮 - 例如,请参阅 here。
非常感谢任何想法或替代建议!
【问题讨论】:
-
这不是安卓问题,安卓标签应该去掉
-
正如布拉德马丁的回答中指出的,后退按钮不能被覆盖。我最终只是简单地隐藏了它 - 对于这个页面,它是最简单和最合适的解决方案。
标签: ios nativescript nativescript-angular