当前位置: 首页 > 知识库问答 >
问题:

IONIC 3-收到通知后打开应用程序

陈文景
2023-03-14

我的应用程序的通知工作良好,在后台和前台接收通知,使用Firebase原生插件。现在,我的客户端需要在收到通知时打开应用程序,而不需要任何用户迭代。

我找到了这个,但没有正确的答案。

在调试中,我意识到通知是通过FireBaseInstanceIDReceiver广播接收的。所以,我试过:

  1. 修改

plugins/cordova-plugin-firebase-lib/plugin.xml

我的问题是:什么是最好的归档方法?有人能用一个真实的例子来指导我吗?

谢谢你抽出时间!

共有1个答案

澹台奇略
2023-03-14

如果有人需要这个,我的解决方案是使用“@ionic-native/background-mode”插件。

ionic cordova plugin add cordova-plugin-background-mode
npm install --save @ionic-native/background-mode@4
import {BackgroundMode} from "@ionic-native/background-mode";

添加提供程序:

providers: [
    BackgroundMode,
    ...
  ],

文件:app.component.ts:

导入后台模式插件:

import {BackgroundMode} from "@ionic-native/background-mode";
constructor(
        platform: Platform, 
        statusBar: StatusBar, 
        splashScreen: SplashScreen,         
        ...
        private backgroundMode: BackgroundMode) {

        this.backgroundMode.enable();
        this.backgroundMode.excludeFromTaskList();
        this.backgroundMode.overrideBackButton();
        // this.backgroundMode.setDefaults({silent: true});

        this.backgroundMode.on('activate').subscribe(value => {
            this.backgroundMode.disableWebViewOptimizations();
        });
}
import {BackgroundMode} from "@ionic-native/background-mode";

现在,我们只是在onNotificationOpen上调用这两个函数,它是firebase在通知到达时调用的函数:

listenToNotifications() {
    return this.firebaseNative.onNotificationOpen()
  }

this.listenToNotifications().subscribe(
      ((msg: any) => {

          // 'These two functions make the magic'

          this.backgroundMode.unlock();
          this.backgroundMode.moveToForeground();

          if (!msg.tap)
            this.events.publish(this.dataInfo.eventFcmNew, msg)        
          else 
              this.events.publish('push', 'NotificationsPage')                  
      })
  )

就是这样!

Git示例

 类似资料:
  • 我知道我可以设置click_action,但这只是为了定制哪些活动将在通知点击时启动,我需要一些将在通知收到时自动启动的东西。 我尝试了quick start messaging firebase示例,其中有一个onMessageReceived()方法,但它仅在应用程序处于前台时才起作用。是否有一些东西将执行同时应用程序在后台?GCM可以通过直接从接收到通知时调用的广播接收器启动活动意图来完成我

  • 我正在开发一个应用程序,它使用GCM进行推送通知。 我的问题是关于如何从用户单击通知时打开/启动应用程序。我有两种潜在的情况: A)应用程序已打开,并且驻留在前台或后台,无论哪种方式,我的GCM工作正常,GCM消息到达用户点击通知并意图启动相关活动(通过通知等待意图传递)。 b)应用程序关闭,收到通知,用户再次点击通知,并试图开始相关活动,这是它变得混乱的地方。该应用程序有一个后端,所以现在需要自

  • 我正在使用Firebase(FCM)向用户显示推送通知,但我遇到了一个奇怪的问题。 我的代码适用于以下场景(使用FirebaseMessagingService): 前台应用 - 在 onReceive() 中接收数据并在应用内显示弹出窗口。 后台应用 - 在 onReceive() 中接收数据并为用户显示通知。如果单击此按钮,应用程序将被带回前台。在LauncherActivity中收到此目的的

  • 当我从Firebase发送推送时,如果应用程序在后台或关闭,我会收到通知,但当应用程序打开时,不是... 有什么建议,如何生成通知时,应用程序是前景?

  • 在通知部分,我有这个通知不打开APP的问题。有什么建议吗?我试了很多可能性,但没有...我错在哪里?请帮帮我。