Angular 7 Cordova 8 后退按钮覆盖不起作用
Angular 7 Cordova 8 backbutton override not working
我正在使用 Angular 7 和 Cordova 8 开发一个应用程序。我想覆盖 cordova 后退按钮事件,以通过添加事件侦听器来防止应用程序关闭,如 [=17] 中所述=]
我的代码如下所示:
let onDeviceReady = () => {
enter code hereconsole.log("Bootstraping Module...")
document.addEventListener("backbutton", (e) => {e.preventDefault(); e.stopPropagation(); console.log("backbutton"); return false;}, false);
platformBrowserDynamic().bootstrapModule(AppModule);
};
document.addEventListener('deviceready', onDeviceReady, false);
根据文档,这应该可以防止应用程序关闭。我知道 preventDefault
、stopPropagation
和 return false
调用不是必需的,但我找到了我的问题的尽可能多的解决方案,但都没有用。
当我按下后退按钮时,我看到 backbutton
打印,但是,该应用程序仍在关闭。
在 Android.
上测试
更新:使用 logcat 调试问题后,当后退按钮被覆盖时,我可以看到在 CoreAndroid 插件 class 中记录的消息 WARNING: Back Button Default Behavior will be overridden. The backbutton event will be fired!
在本机 Android 应用程序中。当我按下按钮时,应用程序仍然退出
更新:这个问题与OnsenUI有关,请看下面我的回答
我们在 app.component.ts ngOnInit
中传递了后退按钮逻辑
import {Renderer2} from '@angular/core';
constructor(private renderer: Renderer2){}
ngOnInit(){
const devicebackbutton = this.renderer.listen('document', 'backbutton', e => {
e.preventDefault();
e.stopPropagation();
return false;
});
}
我设法解决了这个问题。它不是由 Cordova 或 Angular 引起的,而是由我用于输入组件的 OnsenUI 引起的。
默认情况下,它会覆盖后退按钮的所有 cordova 处理程序,因为它提供了自己的功能。你可以阅读更多here
我正在使用 Angular 7 和 Cordova 8 开发一个应用程序。我想覆盖 cordova 后退按钮事件,以通过添加事件侦听器来防止应用程序关闭,如 [=17] 中所述=]
我的代码如下所示:
let onDeviceReady = () => {
enter code hereconsole.log("Bootstraping Module...")
document.addEventListener("backbutton", (e) => {e.preventDefault(); e.stopPropagation(); console.log("backbutton"); return false;}, false);
platformBrowserDynamic().bootstrapModule(AppModule);
};
document.addEventListener('deviceready', onDeviceReady, false);
根据文档,这应该可以防止应用程序关闭。我知道 preventDefault
、stopPropagation
和 return false
调用不是必需的,但我找到了我的问题的尽可能多的解决方案,但都没有用。
当我按下后退按钮时,我看到 backbutton
打印,但是,该应用程序仍在关闭。
在 Android.
更新:使用 logcat 调试问题后,当后退按钮被覆盖时,我可以看到在 CoreAndroid 插件 class 中记录的消息 WARNING: Back Button Default Behavior will be overridden. The backbutton event will be fired!
在本机 Android 应用程序中。当我按下按钮时,应用程序仍然退出
更新:这个问题与OnsenUI有关,请看下面我的回答
我们在 app.component.ts ngOnInit
中传递了后退按钮逻辑import {Renderer2} from '@angular/core';
constructor(private renderer: Renderer2){}
ngOnInit(){
const devicebackbutton = this.renderer.listen('document', 'backbutton', e => {
e.preventDefault();
e.stopPropagation();
return false;
});
}
我设法解决了这个问题。它不是由 Cordova 或 Angular 引起的,而是由我用于输入组件的 OnsenUI 引起的。 默认情况下,它会覆盖后退按钮的所有 cordova 处理程序,因为它提供了自己的功能。你可以阅读更多here