在 Android 上实现推送通知时出错

Posted

技术标签:

【中文标题】在 Android 上实现推送通知时出错【英文标题】:Error in implementing push notification on Android 【发布时间】:2021-08-13 07:50:58 【问题描述】:

我正在创建一个离子角度应用程序。我尝试将推送通知与电容器插件一起使用。但是我遇到了这样的错误。谁能帮帮我?

**"ERROR Error: Uncaught (in promise): Error: "PushNotifications" plugin is not implemented on android
Error: "PushNotifications" plugin is not implemented on android"**

【问题讨论】:

请分享电容版本 "@capacitor/android": "^3.1.2", "@capacitor/core": "^3.1.2", "@capacitor/ios": "^3.1.2", "@capacitor/push-notifications": "^1.0.3", 【参考方案1】:

我解决了 “ERROR 错误:未捕获(承诺中):错误:“PushNotifications”插件未在 android 上实现 错误:“PushNotifications”插件未在 android 上实现”错误请按照以下步骤操作

在 android/app 文件夹中添加 google-service.json 文件

将此代码添加到 .ts 文件中

import 
  ActionPerformed,
  PushNotificationSchema,
  PushNotifications,
  Token,
 from '@capacitor/push-notifications';
import  Platform  from '@ionic/angular';

constructor(public platform: Platform) 
    this.platform.ready().then(() => 
      this.pushAdded();
    )
  




pushAdded() 
    // Request permission to use push notifications
    // iOS will prompt user and return if they granted permission or not
    // Android will just grant without prompting
    PushNotifications.requestPermissions().then(result => 
      if (result.receive === 'granted') 
        // Register with Apple / Google to receive push via APNS/FCM
        PushNotifications.register();
       else 
        // Show some error
      
    );

    PushNotifications.addListener('registration', (token: Token) => 
      alert('Push registration success, token: ' + token.value);
    );

    PushNotifications.addListener('registrationError', (error: any) => 
      alert('Error on registration: ' + JSON.stringify(error));
    );

    PushNotifications.addListener(
      'pushNotificationReceived',
      (notification: PushNotificationSchema) => 
        alert('Push received: ' + JSON.stringify(notification));
      ,
    );

    PushNotifications.addListener(
      'pushNotificationActionPerformed',
      (notification: ActionPerformed) => 
        alert('Push action performed: ' + JSON.stringify(notification));
      ,
    );
  

【讨论】:

我已经添加了这些更改。但不幸的是,仍然出现同样的错误。【参考方案2】:

我已通过删除 android 文件夹并重新添加它来解决此问题。然后它起作用了。感谢 Ravi Ashara 的帮助。

【讨论】:

【参考方案3】:

检查项目中的 MainActivity.java。在 Capacitor 的最新版本中,您必须删除代码“onCreate”。

见:https://capacitorjs.com/docs/updating/3-0#switch-to-automatic-android-plugin-loading

【讨论】:

以上是关于在 Android 上实现推送通知时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的解析服务器上实现 Android 和 IOS 应用程序的预定推送通知?

在 Android 上使用 GCM 推送通知

有人使用 XMPP 在 iOS 上实现推送通知吗?

如何在 Android 1.5 上实现推送?

推送通知未在 android 上显示

[Android][Parse] 推送通知 - 在某些活动中拦截应用程序内部的通知并执行某些方法