在应用中升级 Capacitor 至 2.0
Capacitor 2 进行了一些工具链更新,包括在 iOS 中采用 Swift 5 以及在 Android 中采用 AndroidX。
更新 Capacitor 依赖项
首先,更新 Capacitor Core 和 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)
- 统一各平台时长:短暂 (short) 2000 毫秒,长久 (long) 3500 毫秒
- 地理位置 (Geolocation)
- 在 Android 上使用融合定位提供程序 (Fused Location Provider)
GeolocationOptions中移除了requireAltitude- 更改了 iOS 上的原生定位精度值 (更多信息)
- 文件系统 (Filesystem)
MkdirOptions中移除了createIntermediateDirectories(请改用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 中点击 编辑 -> 转换 -> 转换为当前 Swift 语法。
- App.app 将显示为选中状态,点击 下一步 按钮。
- 然后会提示 无需更改源代码。
- 最后,点击 更新 按钮。