跳转至正文

Firebase Messaging Capacitor 插件

用于 Firebase Cloud Messaging (FCM) 的 Capacitor 插件

安装

bun add @capgo/capacitor-firebase-messaging bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-firebase-messaging
  • pnpm add @capgo/capacitor-firebase-messaging
  • yarn add @capgo/capacitor-firebase-messaging

指南

如何在 Capacitor 中使用 Firebase Messaging

使用 @capgo/capacitor-firebase-messaging

用于 Firebase Cloud Messaging (FCM) 的 Capacitor 插件

安装

bun add @capgo/capacitor-firebase-messaging
bunx cap sync

bunx cap sync 将插件的原生 code 复制到你的原生项目中。每次升级插件后都要重新运行。

导入

import { FirebaseMessaging } from '@capgo/capacitor-firebase-messaging';

API 概览

方法 描述
checkPermissions 检查接收推送通知的权限。
requestPermissions 请求接收推送通知的权限。
isSupported 检查所有必需的 API 是否存在。
getToken 注册应用以接收推送通知。返回一个 FCM token,可用于向该 Messaging 实例发送推送消息。
deleteToken 删除 FCM token 并取消注册应用,以停止接收推送通知。例如,可以在用户登出时调用。
getDeliveredNotifications 获取通知栏中可见的通知列表。
removeDeliveredNotifications 从通知栏中移除指定通知。
removeAllDeliveredNotifications 从通知栏中移除所有通知。
subscribeToTopic 在后台订阅主题。
unsubscribeFromTopic 在后台取消订阅主题。
createChannel 创建一个通知渠道。
deleteChannel 删除一个通知渠道。
listChannels 列出所有可用的通知渠道。

示例

checkPermissions()

检查接收推送通知的权限。

import { FirebaseMessaging } from '@capgo/capacitor-firebase-messaging';

const result = await FirebaseMessaging.checkPermissions();
console.log(result);

requestPermissions()

请求接收推送通知的权限。

import { FirebaseMessaging } from '@capgo/capacitor-firebase-messaging';

const result = await FirebaseMessaging.requestPermissions();
console.log(result);

isSupported()

检查所有必需的 API 是否存在。

import { FirebaseMessaging } from '@capgo/capacitor-firebase-messaging';

const result = await FirebaseMessaging.isSupported();
console.log(result);

getToken()

注册应用以接收推送通知。返回一个 FCM token,可用于向该 Messaging 实例发送推送消息。

import { FirebaseMessaging } from '@capgo/capacitor-firebase-messaging';

const result = await FirebaseMessaging.getToken();
// The result holds sensitive values: use it without logging it.

deleteToken()

删除 FCM token 并取消注册应用,以停止接收推送通知。例如,可以在用户登出时调用。

import { FirebaseMessaging } from '@capgo/capacitor-firebase-messaging';

await FirebaseMessaging.deleteToken();

getDeliveredNotifications()

获取通知栏中可见的通知列表。

import { FirebaseMessaging } from '@capgo/capacitor-firebase-messaging';

const result = await FirebaseMessaging.getDeliveredNotifications();
console.log(result);

上表列出了 13 个核心方法。监听器、版本辅助函数以及每个方法的完整约定,请参阅 GitHub 仓库.

监听事件

addListener 会返回一个句柄。调用 handle.remove() 在屏幕卸载时,或者调用 FirebaseMessaging.removeAllListeners() 以清除所有监听器。

完整参考文档

从“使用 @capgo/capacitor-firebase-messaging”继续

如果你正在使用 使用 @capgo/capacitor-firebase-messaging 要规划原生插件工作,请将其与 Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 查看由 Capgo 提供的 Capacitor 插件中的实现细节, 添加或更新插件 查看添加或更新插件中的实现细节, Ionic Enterprise 插件替代方案 查看 Ionic Enterprise 插件替代方案中的产品工作流,以及 Capgo Native Build 查看 Capgo Native Builds 中的产品工作流。

常见问题

Firebase Messaging 插件常见问题

如何在 Capacitor 应用中安装 Firebase Messaging 插件?

运行 "bun add @capgo/capacitor-firebase-messaging"(或 "npm install @capgo/capacitor-firebase-messaging"),然后运行 "bunx cap sync",让 iOS 和 Android 项目拉取原生 code。再在应用 code 中从 "@capgo/capacitor-firebase-messaging" 导入。

@capgo/capacitor-firebase-messaging 支持 React、Vue 和 Angular 吗?

支持。Firebase Messaging 是一个 Capacitor 包,因此可用于任何运行在 Capacitor 中的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 和纯 JavaScript。

@capgo/capacitor-firebase-messaging 支持哪个 Capacitor 版本?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-firebase-messaging 是免费开源的吗?

是的。code 源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-firebase/tree/main/packages/messaging,该包可从 npm 免费安装。欢迎提交 Bug 报告和 Pull Request。

使用 Firebase Messaging 的 code 能否不经过 App Store 审核就更新?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待应用审核,即可发布 Firebase Messaging 变更

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo