跳到主要内容
版本:v2

Capacitor 插件 API

Capacitor 提供了一系列原生插件 API,这些 API 可供所有 Capacitor 应用使用。它们可以被视作 Capacitor 的"核心插件",能帮助开发者便捷地访问各平台常用的功能特性。

对于从 Cordova 迁移而来的开发者,Capacitor 的核心插件涵盖了 Cordova 大部分核心插件功能,同时还新增了一些特性。

完整的可用插件列表请查看左侧菜单中的插件目录。

API 使用方法

使用 Capacitor 插件需要遵循以下步骤:

1) 导入 Plugins 对象。它代表所有 Capacitor 插件的注册中心。

import { Plugins } from '@capacitor/core';

2) 从插件注册中心(Plugins 对象)获取所需插件。

const { Browser } = Plugins;

3) 使用插件 API:

async openBrowser() {
// 在 iOS 平台上,这将在 SFSafariViewController(应用内浏览器)中打开 URL
await Browser.open({ url: "https://ionicframework.com" });
}

常见的错误做法是直接导入插件后立即使用 API,这样会导致始终调用网页版实现:

import { Browser } from '@capacitor/core';

async openBrowser() {
// 在 iOS 平台上,这将在 Safari 浏览器中打开 URL
// 而非使用 SFSafariViewController(应用内浏览器)
await Browser.open({ url: "https://ionicframework.com" });
}

通过插件注册中心(Plugins 对象)获取插件,可以确保优先使用原生实现(若可用),否则自动回退到网页版实现。

Angular 使用说明

Capacitor 插件的事件监听器运行在 Angular 的 NgZone 执行上下文之外。若需要触发 Angular 的变更检测,请将处理逻辑包裹在 NgZone.run 代码块中:

constructor(private ngZone: NgZone) { }

async ngOnInit() {
Network.addListener("networkStatusChange", (status) => {
this.ngZone.run(() => {
// 此代码将在 Angular 的执行上下文中运行
this.networkStatus = status.connected ? "在线" : "离线";
});
});
}