在您的应用中更新 Capacitor 到 2.0
Capacitor 2 进行了一些工具更新,包括在 iOS 上采用 Swift 5,在 Android 上采用 AndroidX。
更新 Capacitor 依赖
首先,更新 Capacitor 核心和 CLI:
npm install @capacitor/cli@2 @capacitor/core@2
接下来,更新您使用的每个 Capacitor 平台:
# iOS
npm install @capacitor/ios@2
npx cap sync ios
# Android
npm install @capacitor/android@2
npx cap sync android
# Electron
cd electron
npm install @capacitor/electron@2
不向后兼容的插件变更
- Camera
saveToGallery默认值现在在所有平台上为false- 如果
allowEditing为true且编辑被取消,则返回原始图像
- Push Notifications
- 调用
register()时将不再请求权限,请使用requestPermission() PushNotificationChannel已重命名为NotificationChannel
- 调用
- Local Notifications
- 调用
register()时将不再请求权限,请使用requestPermission() schedule()现在返回LocalNotificationScheduleResult
- 调用
- Toast
- 统一各平台的持续时间:短 2000ms,长 3500ms
- Geolocation
- 在 Android 上使用 Fused Location Provider
- 从
GeolocationOptions中移除了requireAltitude - 更改了 iOS 上的原生定位精度值(更多信息)
- Filesystem
createIntermediateDirectories已从MkdirOptions中移除(请使用recursive替代)- writeFile 新增
recursive选项,这改变了 Android 和 Web 上的行为(更多信息) - 移除了
Application目录选项,因为它存在问题
- Device
- 从
getInfo()中移除了batteryLevel和isCharging,请使用getBatteryInfo()
- 从
- Modals
inputPlaceholder现在设置占位符而不是文本,请使用inputText替代
- App
AppRestoredResult现在是可选的,仅在成功时返回,否则返回错误
- Clipboard
ReadOptions已被移除
iOS
Capacitor 2 需要 Xcode 11+。
更新原生项目到 Swift 5
Capacitor 2 使用 Swift 5。建议将您的原生项目也更新为使用 Swift 5。
- 在 Xcode 中点击 Edit -> Convert -> To Current Swift Syntax。
- 选择 App.app,点击 Next 按钮。
- 然后会显示一条消息 No source changes necessary。
- 最后,点击 Update 按钮。
Android
AndroidX
Capacitor 2 按照 Google 的建议使用 AndroidX 作为 Android 支持库依赖,因此原生项目也需要更新为使 用 AndroidX。
在 Android Studio 中执行 Refactor -> Migrate to AndroidX。然后点击 Migrate 按钮,最后点击 Do Refactor。
如果使用的 Cordova 或 Capacitor 插件尚未使用 AndroidX,可以使用 jetifier 工具来修补它们。
npm install jetifier
npx jetifier
要在每次安装包后自动运行它,请在 package.json 中添加 "postinstall": "jetifier"。