为了解决KPI,我试图在用户关闭应用程序(Ionic/Capacitor/Angular)时使用Firebase SDK生成logEvent。但是我在试图进入appStateChange
侦听器时遇到了很多麻烦(这是在我的app.component.ts
的ngOnInit
方法中创建的)。
由于官方电容器后台任务插件被停用,我一直在使用这个社区插件就在这里,它的行为就像官方的
import { BackgroundTask } from '@robingenz/capacitor-background-task';
App.addListener('appStateChange', async ({ isActive }) => {
// It isn't getting here
if (isActive)
return;
// When the app is running at the background
const taskId = await BackgroundTask.beforeExit(async () => {
console.log('Sending app_close event to Firebase')
await this.firebaseAnalyticsService.logEvent('app_close', {
lastScreenName: this.firebaseAnalyticsService.getCurrentScreenName(),
});
BackgroundTask.finish({ taskId });
});
})
我也试过用其他方法来处理这个问题,用cordova插件,窗口。beforeUnload等等……他们都没有像我期望的那样工作(没有进入处理程序)。如果有人能帮我解决这个问题,我会很感激的。
解决!我的解决方案是增加电容器版本并删除后台任务插件,因为它不需要我的意图。