跳转至正文

实时重载 Capacitor 插件

连接开发服务器,在开发过程中实现即时热重载

安装

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

指南

如何在 Capacitor 中使用 Live Reload

使用 @capgo/capacitor-live-reload

使用 Capacitor 插件,通过远程 Vite 开发服务器实现 Capacitor 应用的 live reload。

安装

bun add @capgo/capacitor-live-reload
bunx cap sync

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

导入

import { LiveReload } from '@capgo/capacitor-live-reload';

API 概览

方法 描述
configureServer 存储后续连接所需的远程开发服务器设置。
connect 如果当前未建立连接,则建立 WebSocket 连接。
disconnect 关闭当前的 WebSocket 连接并禁用自动重连。
getStatus 返回当前的连接状态。
reload 触发 Capacitor WebView 的全量重载。
reloadFile 如果运行时支持,则重载单个文件/模块(否则回退到全量重载)。

示例

configureServer()

存储用于后续连接的远程开发服务器设置。

import { LiveReload } from '@capgo/capacitor-live-reload';

const result = await LiveReload.configureServer({ url: 'https://example.com' });
console.log(result);

connect()

如果当前未处于活动状态,则建立 WebSocket 连接。

import { LiveReload } from '@capgo/capacitor-live-reload';

const result = await LiveReload.connect();
console.log(result);

disconnect()

关闭当前的 WebSocket 连接并禁用自动重连。

import { LiveReload } from '@capgo/capacitor-live-reload';

const result = await LiveReload.disconnect();
console.log(result);

getStatus()

返回当前的连接状态。

import { LiveReload } from '@capgo/capacitor-live-reload';

const result = await LiveReload.getStatus();
console.log(result);

reload()

触发 Capacitor WebView 的全量重载。

import { LiveReload } from '@capgo/capacitor-live-reload';

await LiveReload.reload();

reloadFile()

如果运行时支持,则重载单个文件/模块(否则回退到全量重载)。

import { LiveReload } from '@capgo/capacitor-live-reload';

await LiveReload.reloadFile({ path: 'path/to/file' });

监听事件

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

完整参考文档

继续阅读 使用 @capgo/capacitor-live-reload

如果你正在使用 使用 @capgo/capacitor-live-reload 要规划原生插件工作,请将其与 @capgo/capacitor-live-reload 了解 @capgo/capacitor-live-reload 中的实现细节, 快速入门 有关“入门指南”中的实现细节, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 有关 Capgo 开发的 Capacitor 插件的实现细节,以及 添加或更新插件 有关添加或更新插件的实现细节。

常见问题

Live Reload 插件常见问题

如何在 Capacitor 应用中安装 Live Reload 插件?

运行 "bun add @capgo/capacitor-live-reload"(或 "npm install @capgo/capacitor-live-reload"),然后运行 "bunx cap sync",使 iOS 和 Android 项目同步原生 code。最后在你的应用 code 中从 "@capgo/capacitor-live-reload" 导入即可。

@capgo/capacitor-live-reload 是否支持 React、Vue 和 Angular?

支持。Live Reload 是一个 Capacitor 包,因此它支持任何在 Capacitor 中运行的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 以及原生 JavaScript。

@capgo/capacitor-live-reload 支持哪个 Capacitor 版本?

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

@capgo/capacitor-live-reload 是免费开源的吗?

是的。code 的源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-live-reload/,且可以通过 npm 免费安装。欢迎提交 Bug 报告和 Pull Request。

我可以在不经过 App Store 审核的情况下,更新使用 Live Reload 的 code 吗?

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

无需等待应用审核,即可即时推送 Live Reload 更新

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

开始使用 Capgo