跳过主要内容
{'text': '教程'}

Transform Your PWA to a Native App with Capacitor

{'text': '将现有的渐进式Web应用程序转换为本机Capacitor移动应用程序,适用于iOS和Android。关于将PWA打包到本机应用程序的实用指南,仅需进行最小code更改。'}

{'text': '文章来源', 'context': 'Page/area: Capgo marketing website. Role: Short UI label or navigation item. Seen in: component BlogEditorialByline.astro. Message key `article_credits` (Article Credits).'}

{'text': '马丁·多纳迪厄', 'context': 'Page/area: Enterprise product/pricing page. Role: UI label. Seen in: page enterprise.astro. Message key `enterprise_partnership_capgo_martin_name` (Enterprise Partnership Capgo Martin Name).'}

Writer

Valeria

Reviewer

Jordan

编辑

Transform Your PWA to a Native App with Capacitor

简介

You already have a Progressive Web App. It works in browsers, has a manifest, and maybe uses a service worker for offline support. If you now need app store distribution, native device APIs, or a better onboarding funnel, migrating to a Capacitor app is usually faster than rewriting your front end.

最大的优势是您保留了几乎所有现有的网络code。在大多数情况下,您只需要:

  • 构建生产网络资产
  • 初始化Capacitor webDir,
  • 添加iOS和Android项目
  • 并仅在需要时连接本机插件。

如果您的PWA具有干净的路由和组件逻辑,这可能只需要几小时。

前提条件

预估时间: 2-5 小时,取决于平台特性。

  • Node.js 18+ Bun
  • 您的现有 PWA 源代码 code (React, Vue, Angular, Svelte 等)
  • Xcode (仅限 iOS, macOS)
  • 安卓 studio (仅限 Android)
  • 苹果开发者账户,如果您计划发布 iOS
  • Google Play 发布者账户 (仅限 Android)

步骤 1:检查您的 PWA 之前将其包装成原生应用

在运行之前 bunx cap init确保您的 Web 应用已准备好发布:

  1. 确保您的 PWA 有一个生产构建脚本(例如 bun run build).
  2. 确认您的 Web 输出文件夹是确定性的(通常 dist, build或 out).
  3. 删除硬编码的绝对重定向,假设浏览器上下文
  4. 验证服务工作器行为与移动 WebViews 兼容:
    • 保持离线支持,如果有助于您的用户
    • 避免浏览器仅有的 API,无法在嵌入式 Webview 中使用
  5. 确认 PWA 安装提示和浏览器特定的 UX 是否仍然合理。在一个 Capacitor 应用中,通常不需要应用安装提示

步骤 2:适应 Web-only 行为

保持您的应用程序 UI,但屏蔽浏览器仅限逻辑。

使用简单的平台检查在安装和推送提示周围:

import { Capacitor } from '@capacitor/core'

const isNative = Capacitor.isNativePlatform()

function registerInstallPrompt() {
  if (isNative) return
  // existing browser-only install or Web Push code
}

这避免了浏览器仅限逻辑在原生容器内触发。

步骤 3:在您的 PWA 文件夹中初始化 Capacitor

从您的现有 PWA 根目录:

bun add @capacitor/core
bun add -D @capacitor/cli

运行 Capacitor init 以使用您的应用程序名称、包 ID 和 Web 输出目录:

bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist

如果您的构建文件夹是 build (Create React App) 或 out (Next.js 静态导出),请替换 dist.

添加一个基本的 Capacitor 配置:

import type { CapacitorConfig } from '@capacitor/cli'

const config: CapacitorConfig = {
  appId: 'com.example.my-pwa-app',
  appName: 'MyPWAApp',
  webDir: 'dist',
  server: {
    iosScheme: 'https',
  },
}

export default config

步骤 4:添加原生平台

安装核心原生包并生成项目文件夹:

bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android

At this point Capacitor 已经创建 ios/ 和 android/ 文件夹。 同步将复制您的构建的Web资产到两种平台。

第 5 步:构建您的Web应用并同步

构建PWA并同步Web资产:

bun run build
bunx cap sync

现在打开本机项目:

bunx cap open ios
bunx cap open android

从Xcode或Android Studio中,连接设备或模拟器并运行。

第 6 步:本机增强后迁移

这是您替换Web-only特性为本机API所在的地方:

  • 推送通知 -> @capacitor/push-notifications
  • 安全的键值存储 -> @capacitor/preferences
  • 相机/媒体 -> @capacitor/camera
  • 生物识别认证 -> @capacitor-community/native-biometric (或选择的插件)

每个新本地插件:

  1. 安装插件包
  2. 配置插件特定设置
  3. 运行:
bunx cap sync

然后重建并再次运行。

第 7 步:应用商店平行性检查

context

  • 页面/区域:Capgo 页面。角色:UI 标签。见于:关于.astro 页面。消息键 `about_how_step_label` (关于如何步骤标签)。/ 提交之前:
  • 在两种平台上测试深度链接和路由(和深度路由)。
  • 移除未使用的网页特有元数据(例如安装提示)。
  • 保持应用传输安全和隐私设置与您的政策一致。
  • 为每个平台添加应用图标/启动画面资源。

如果您的应用使用OTA更新,配对您的发布管道与一个原生安全的更新策略,并考虑 Capgo 为受控发布和回滚。

最终检查表

  • 网页应用构建干净(bun run build)
  • Capacitor webDir
  • bunx cap add ios 并 bunx cap add android 完成
  • 原生应用在真实设备上运行
  • 浏览器独有的code路径被限制为原生行为
  • 更新频道和应用商店资产已配置

您已经在构建PWA时完成了大部分繁重的工作。将其包装在Capacitor中将为您提供:

  • 商店分发
  • 对原生API的访问
  • 不需要完全重写code的更快迭代
  • 一个单一的部署路径,适用于Web和移动团队。

从这个流程开始,然后根据分析和用户反馈逐步迭代原生功能。

继续阅读《将PWA转换为原生应用Capacitor》

如果您正在使用 《将PWA转换为原生应用Capacitor》 来规划迁移和企业运营,连接它与 Capgo 企业版 为Capgo 企业版产品工作流 Ionic 企业插件替代方案 为Ionic 企业插件替代方案产品工作流 Capgo 替代方案 为Capgo 替代方案产品工作流 Capgo 咨询 为Capgo 咨询产品工作流 Capgo 高级支持 为Capgo 高级支持产品工作流

Capacitor

Capgo 应用的即时更新

当 Web 层面的 bug 活跃时,通过 __CAPGO_KEEP_0__ 将修复推送给用户,而不是等待几天的应用商店审批。用户在后台接收更新,而本机更改保持在正常审批路径中。

来自 Martin 的人性化支持

立即开始

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