将使用 Cordova 的 Web 应用迁移到 Capacitor
要将使用 Cordova 的 Web 应用完全迁移到 Capacitor,需要执行几个步骤。
建议在应用这些更改时使用单独的代码分支。
添加 Capacitor
首先在终端中打开您的项目,然后按照指南将 Capacitor 添加到 Web 应用或将 Capacitor 添加到 Ionic 应用进行操作。
使用 Capacitor 初始化您的应用。系统提示的一些信息可以在 Cordova 的 config.xml 文件中找到:
- 应用名称可以在
<name>元素中找到。 - Bundle ID 可以在根
<widget>元素的id属性中找到。
npx cap init
构建 Web 应用
在添加任何原生平台之前,您必须至少构建一次 Web 项目。
npm run build
这确保在 Capacitor 配置文件中,Capacitor 已自动配置为使用 www 文件夹作为 webDir。
添加平台
Capacitor 的原生平台位于各自的顶层文件夹中。Cordova 的平台位于 platforms/ios 或 platforms/android 下。
npx cap add ios
npx cap add android
项目根目录下会创建 android 和 ios 文件夹。这些是完全独立的原生项目工件,应被视为应用的一部分(即,将其纳入源代码管理、在其各自的 IDE 中编辑等)。此外,在 package.json 的 dependencies 中找到的任何 Cordova 插件都会被 Capacitor 自动安装到每个新的原生项目中(不包括任何不兼容的插件):
"dependencies": {
"@ionic-native/camera": "^5.3.0",
"@ionic-native/core": "^5.3.0",
"@ionic-native/file": "^5.3.0",
"cordova-android": "8.0.0",
"cordova-ios": "5.0.0",
"cordova-plugin-camera": "4.0.3",
"cordova-plugin-file": "6.0.1",
}
启动屏和图标
如果您之前创建了图标和启动屏图片,它们可以在项目顶层 resources 文件夹中找到。有了这些图片,您可以使用 @capacitor/assets 工具为基于 Capacitor 的 iOS 和 Android 项目生成图标和启动屏。
运行以下命令重新生成图片并将其复制到原生项目中:
npx @capacitor/assets generate --ios
npx @capacitor/assets generate --android
迁移插件
首先审查您现有的 Cordova 插件 - 您可能可以删除不再需要的插件。
接下来,查看 Capacitor 的所有官方插件以及社区插件。您可能可以切换到与 Capacitor 等效的插件。
某些插件的功能可能不完全匹配,但根据您需要的功能,这可能并不重要。
请注意,任何不兼容或导致构建问题的插件都会被自动跳过。
移除 Cordova 插件
在用 Capacitor 插件替换 Cordova 插件(或直接完全移除它)之后,卸载该插件,然后运行 sync 命令以从原生项目中移除插件代码:
npm uninstall cordova-plugin-name
npx cap sync