在Ionic上关闭应用程序时未收到通知

wnvonmuf  于 2023-01-22  发布在  Ionic
关注(0)|答案(1)|浏览(170)

我有一个Ionic项目,应用打开时可以收到通知,但关闭时通知不来,发送2 - 3次通知后,应用发出关闭警告,关闭时如何收到通知?
离子信息:

Ionic:

   Ionic CLI                     : 6.20.1 (C:\Users\xxxxx\AppData\Roaming\npm\node_modules\@ionic\cli)
   Ionic Framework               : @ionic/angular 6.5.0
   @angular-devkit/build-angular : 13.2.6
   @angular-devkit/schematics    : 13.2.6
   @angular/cli                  : 13.2.6
   @ionic/angular-toolkit        : 6.1.0

Cordova:

   Cordova CLI       : 11.0.0
   Cordova Platforms : android 10.1.2
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 9 other plugins)

Utility:

   cordova-res : 0.15.4
   native-run  : 1.7.1

System:

   NodeJS : v18.13.0 (C:\Program Files\nodejs\node.exe)
   npm    : 9.3.0
   OS     : Windows 10

cordova插件-fcm-with-dependency-已更新7.8.0 " cordova FCM推送插件"
我的代码:

constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar,
    public route: Router,
    public xDevice: Device,
    private network: Network,
    private fcm:FCM,
  ) {    
    this.initializeApp();
    this.setupFCM();
  }

private async setupFCM() {
    this.platform.ready().then(() => {
      try {
        this.fcm.getInitialPushPayload().then((payload) => {
  
          if(payload?.wasTapped) {
            console.log("Received FCM when app is closed -> ", JSON.stringify(payload));
            // call your function to handle the data
            //this._handlePushNotificationData(payload);
          }                                 
          
        });
        this.fcm.requestPushPermission();
        this.fcm.hasPermission();
        this.fcm.getToken().then(token => {
          console.log("Token: " + token);
          console.log(token)
        }).catch(error => {
          console.log(error)
        })
        this.fcm.onNotification().subscribe(data => {
           if (data.wasTapped) {
             console.log('Received in background');
           } else {
             console.log('Received in foreground');
           }          
        });
        this.fcm.onTokenRefresh().subscribe(token => {
          
          console.log(token)
        });
      } catch (error) {
        console.log(error)
      }
    });
  }

它请求通知权限,但是关闭应用后通知没有来,我也找不到问题,因为应用关闭了,怎么解决这个问题?

vlf7wbxs

vlf7wbxs1#

您所面临的问题可能是由于Firebase Cloud Messaging(FCM)在应用关闭时处理推送通知的方式造成的。FCM使用通知托盘图标在应用关闭时显示推送通知。但是,如果用户禁用了您的应用的通知托盘图标,则可能不会显示通知。
要解决此问题,您可以尝试以下操作:
1.确保您已在应用中正确设置FCM,并且使用了正确的凭据。
1.检查是否在设备设置中为您的应用启用了通知托盘图标。
1.确保在Firebase控制台中正确配置FCM服务器密钥和发送者ID。
1.检查设备令牌是否被正确检索并发送到FCM服务器。
5.在不同的设备上测试通知,并查看问题是特定于某个设备还是在所有设备上都发生。
如果问题仍未解决,您可以尝试使用更适合在应用关闭时处理推送通知的其他推送通知服务或库。

相关问题