跳过主要内容

Capacitor 插件贡献指南

了解如何有效地贡献 Capacitor 插件的设置、编码标准、测试和文档的全面指南。

Capacitor Plugin Contribution Guide

Capacitor plugins 连接 Web 技术与原生设备功能,实现 跨平台应用开发本指南将帮助您:

  • 建立环境:类似于Capacitor的工具 Node.js, Xcode和 安卓Studio 是必需的。
  • 遵循 Code 规范: 使用 TypeScript, Swift, 并且 Kotlin 使用一致的命名规范和错误处理
  • 进行彻底的测试: 为 JavaScript、iOS 和 Android 编写单元测试以确保可靠性
  • 清晰地文档化: 使用 JSDoc 和 README 文件以便于采用
  • 提交 Pull Request: 在贡献之前,请确保您的 code 高质量、测试和文档。

开源贡献指南

开发环境设置

创建一个合适的开发环境对于高效的插件开发至关重要。一个良好的准备的设置可以让您的编码、测试和部署变得更加顺畅。

您需要的工具和技能

在开始之前,请确保您安装了以下工具:

类别 要求
核心工具 Node.js (LTS)、npm 6+、Git
IDE/编辑器 Visual Studio Code 或您的首选编辑器
iOS 开发 Xcode, SwiftLint, CocoaPods
Android 开发 Android Studio, Android SDK, JDK

您还应该对 TypeScript 进行 web 开发,并且要么是 Swift(用于 iOS)要么是 Java/Kotlin(用于 Android)用于本机开发任务 [1][2].

设置单元仓库

The Capacitor 插件 该生态系统依赖于单个仓库结构。这一方法确保您的工作从一开始就符合社区标准。

  1. Fork 和克隆仓库
    首先, fork Capacitor 插件仓库到 GitHub,然后克隆您的 forked 仓库:

    git clone https://github.com/your-username/capacitor-plugins.git
    cd capacitor-plugins
    npm install
  2. 安装依赖项和构建
    运行以下命令来安装所需的所有内容并构建插件:

    npm run build
  3. 设置版本控制
    使用特性分支来管理您的更改,并保持您的 fork 与上游仓库同步。

准备原生平台

为了进行跨平台开发,您需要配置 iOS 和 Android 环境。

对于 iOS:

  • 从 Mac App Store 下载 Xcode。

  • 使用以下命令安装命令行工具:

    xcode-select --install
  • 使用以下命令安装CocoaPods:

    sudo gem install cocoapods
  • 设置Apple开发者账户和必要的证书。

  • 使用SwiftLint(可选)来维护code质量。

对于Android:

  • 安装Android Studio以及最新的SDK和一个虚拟设备。
  • 确保您已安装JDK。
  • 在Android Studio中正确配置Android SDK。

一旦这些平台设置完成,您就可以遵循已建立的编码实践并开始插件开发。

Code标准指南

现在您的开发环境已设置好,请遵循这些指南来构建易于维护和使用的插件。

风格指南遵从性

The Capacitor 插件生态系统 严格遵守编码标准,使用工具如 ESLint, Prettier,以及 SwiftLint。以下是一些必需的格式化要求:

组件 格式
变量 deviceInfo (小驼峰式)
类 BatteryManager (大驼峰式)
方法 getLanguageCode() (camelCase)
常量 MAX_RETRY_COUNT (SNAKE_CASE)

插件应使用TypeScript以获得更好的类型安全性和ES6+特性,如 async/await.此外,遵循Swift (iOS) 和Kotlin (Android) 的平台特定编码约定。

错误和类型管理

跨平台兼容性中,-consistent错误处理至关重要。以下是一个示例:

async checkPermissions(): Promise<PermissionStatus> {
  try {
    const result = await this.implementation.checkPermissions();
    return result;
  } catch (error) {
    throw new Error(`Permission check failed: ${error.message}`);
  }
}

为了类型安全:

  • 使用针对特定用例的聚焦接口。
  • 应用联合类型以支持平台特定的变体。

Code 文档

良好的文档是使插件易于使用和可访问的关键。遵循以下实践:

  1. API 文档: 写出与 @capacitor/docgen . 例如:
/**
 * @description Get the device's current battery level
 * @returns Promise with the battery level percentage
 */
async getBatteryLevel(): Promise<{ level: number }>;
  1. README 结构包含安装步骤、配置说明、平台特定要求、使用示例和详细的API参考资料。

Capacitor 文档

sbb-itb-f9944d2

__CAPGO_KEEP_0__ 社区做出贡献。

测试Capacitor插件涉及关注几个关键领域,以确保平滑的功能和可靠性。

插件测试指南

Native bridge testing ensures proper communication between JavaScript and native code. To get started, set up your testing environment with frameworks tailored to each platform.

__CAPGO_KEEP_0__ 插件涉及关注几个关键领域以确保平滑功能和可靠性。 Jest JavaScript侧的单元测试:

// Example of a Jest unit test for the JavaScript bridge
describe('DeviceInfo Plugin', () => {
  test('getBatteryLevel returns valid percentage', async () => {
    const result = await DeviceInfo.getBatteryLevel();
    expect(result.level).toBeGreaterThanOrEqual(0);
    expect(result.level).toBeLessThanOrEqual(100);
  });
});

对于原生侧的测试,使用XCTest进行iOS测试,JUnit进行Android测试。以下是Android的示例:

@Test
fun testBatteryLevel() {
    val plugin = DeviceInfo()
    val result = plugin.getBatteryLevel()
    assertTrue(result.level in 0..100)
}

一旦您确认核心桥接功能正常工作,请继续测试完整的用户工作流。

完整的插件测试

为了确保您的插件在不同场景下表现良好,请测试以下类别:

测试类别 重点关注领域
集成测试 跨平台功能
性能测试 资源使用和响应时间
安全测试 数据处理和权限检查

对于具有复杂功能的插件,模拟真实世界的用户场景。例如,如果您正在测试一个DeviceInfo插件,请检查:

  • 在不同网络条件下成功上传
  • 准确的进度报告
  • 大文件传输期间的内存使用

OTA测试 Capgo

Capgo Live Update Dashboard界面

Capgo的开源工具使其易于快速部署和测试更新。以下是如何使用它:

  1. 设置 更新频道 开发、测试和生产环境。
  2. 使用 CI/CD 工具自动部署。
  3. 立即推送更新。
  4. 通过 __CAPGO_KEEP_0__ 监控性能和问题。 Capgo 控制台.

对于分阶段发布,Capgo 允许您限制更新到小部分用户。例如,您可以每 24 小时将新版本推送到 25% 的用户:

// Example configuration for staged rollout
{
  "plugin": "camera-plugin",
  "version": "1.2.0",
  "rollout": {
    "percentage": 25,
    "interval": "24h"
  }
}

这种分阶段的方法通过利用社区反馈在全面发布之前识别问题。

Pull Request 流程

一旦您对更改进行了彻底的测试,请遵循以下步骤提交您的 pull 请求:

PR 提交清单

在提交之前,请确保您已覆盖这些关键领域:

类别 什么需要检查
Code 质量 - 确保 Swift/Kotlin 实现与 web API 一致。
测试 - 为新功能添加单元测试。
- 确认 CI/CD pipeline 检查成功。
文档 - 更新 README、内联文档和 CHANGELOG 等内容。

社区指南

在协作时,遵循以下最佳实践:

  • 及时响应审阅者反馈。
  • 保持讨论聚焦于技术细节。
  • 使用 GitHub 的建议功能来提出 code 的修改建议。
  • 提交小型、专注的 pull 请求,针对一个特性或问题一次。

对于更大的修改,建议先创建一个问题并讨论你的方法。Capacitor 团队依赖于 GitHub Actions 进行自动检查,所有检查都必须通过才能进行代码审查。

Capgo 集成指南

如果你的插件涉及实时更新,确保它在提交之前与 Capgo 完美兼容:

  1. 版本控制
    使用清晰的语义版本控制你的插件,并在 changelog 中记录所有修改。Capgo 的系统可以帮助跟踪用户设备上的版本采用情况。

  2. CI/CD 集成
    将 Capgo 集成到你的 CI/CD pipeline 中,以便自动化更新部署。

  3. 更新监控
    监控部署成功率并确保遵守应用商店的指南。

总结

为了让您的插件产生实质性的贡献,需要遵循已建立的流程并符合社区标准。这包括遵循Capacitor的编码指南并对您的工作进行彻底的测试。

PR 检查清单强调了高质量提交的必要性。如果您的插件支持实时更新,集成Capgo(如前所述)可以帮助您快速发布更新,而无需等待应用商店的批准。

一旦您的 PR 被合并,保持参与并跟踪问题和发布版本更新。与社区的定期交互、持续维护以及__CAPGO_KEEP_0__更新的保持 保持最新的Capacitor更新 请注意用户反馈并根据需要进行更新。这项持续的努力有助于维护整个生态系统的整体质量,并使您的插件对开发者保持价值。

继续阅读__CAPGO_KEEP_0__插件贡献指南

继续从 Capacitor 插件贡献指南

__CAPGO_KEEP_0__插件贡献指南 Capacitor Plugin Contribution Guide __CAPGO_KEEP_0__插件目录 以实现Capgo插件目录中的产品工作流程 以实现Capgo插件目录中的产品工作流程 Capacitor 由 Capgo 提供的插件 为 Capacitor 插件的实现细节提供了 Capgo 的支持。 __CAPGO_KEEP_0__ 插件 __CAPGO_KEEP_1__ 替代 Ionic 企业插件 替代 Ionic 企业插件 Capgo 原生构建 Capgo 原生构建

为Capacitor应用提供实时更新

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

当web层bug出现时,通过__CAPGO_KEEP_0__将修复直接推送给用户,而不是等待几天的app store审批。用户在后台接收更新,而native层的更改仍然在正常的审批路径中。

立即开始

最新博客

Capgo 为您提供了创建真正专业的移动应用所需的最佳见解。