代码中的重大变更
iOS
CAPBridgedProtocol 协议的变更
CAPBridgedPlugin协议的要求已从类级别移至实例级别。pluginId重命名为identifier,以避免与CAPPlugin.pluginId冲突,同时移除了getMethod(_:)要求,并将其放入内部的扩展方法中。pluginMethods的声明也进行了更新,使其内容类型更加明确(从Any更改为CAPPluginMethod)。
绝大多数用户不会遇到任何问题,因为通常使用宏来生成对 CAPBridgedPlugin 的遵循。任何将对象强制转换为 CAPBridgedPlugin,或在不使用宏的情况下手动遵循 CAPBridgedPlugin 协议的用户将会受到影响。
Android
PluginCall.getObject() / PluginCall.getArray()
为了与 iOS 行为保持一致,Android 上的 PluginCall.getObject() 和 PluginCall.getArray() 现在可以返回 null。我们建议插件作者在处理这些方法的返回值时进行空值检查。
在插件中将 Capacitor 升级至 5.0
使用 @capacitor/plugin-migration-v4-to-v5
在插件文件夹中运行 npx @capacitor/plugin-migration-v4-to-v5@latest,该命令将自动执行所有文件变更。