android - 应用程序进入后台时未触发 ionic 事件(平台暂停)

标签 android angular cordova ionic-framework capacitor

我想在我的应用进入后台时执行一些操作,例如,在按下主页按钮时。 (我正在 Android 设备上进行测试。)

我在我的 app.component.ts 中尝试了以下内容:

this.platform.ready().then(() => {
    this.platform.pause.subscribe(async () => {
      alert("Pause event detected"); 
      //Do stuff here
    });

    this.platform.resume.subscribe(async () => {
      alert("Resume event detected");
      //Do stuff here
    });
…

我也试过:

App.getState().then((result) => {
  alert("state active?" + result.isActive);
});

当应用程序进入后台时(例如,通过按主页按钮),不会触发任何监听器。但是当我再次启动该应用程序时,所有事件都会被触发(在本例中为警报),包括 platform.pause 事件。

我正在使用 Ionic 9 和 Capacitor。

我是不是误会了什么?可能是什么问题?

最佳答案

您可以使用 Capacitor's App API 中提供的事件监听器.

// Import the relevant stuff from Capacitor
import { Plugins, AppState } from '@capacitor/core';
const { App } = Plugins;

然后在你的 AppComponent 类中

this.platform.ready().then(() => {

    App.addListener('appStateChange', (state: AppState) => {
        if (state.isActive) {
            console.log('App has become active');
        } else {
            console.log('App has become inactive');
        }
    });

})

请注意,您也可以通过切换到另一个选项卡在桌面浏览器中对此进行测试。

关于android - 应用程序进入后台时未触发 ionic 事件(平台暂停),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62234807/

相关文章:

android - Detox 至少 75% 的 View 区域显示给用户

android - 每天只更新一次

javascript - getDOM() 在 Angular 2 规范中如何工作

angular - 在 Angular 6 中滚动结束时禁用按钮

javascript - 如果 window.open 在 IOS 中不起作用,请在同一选项卡中打开 url

android - 哪种 JavaScript 框架最适合移动应用程序开发

java - 单击 Imgeview 时无法播放音乐文件

file - Cordova 无法加载资源:net::ERR_FILE_NOT_FOUND

ios - Phonegap 3.3.0 config.xml解析错误

ios - Cordova/Ionic - 从 InAppBrowser 下载文件