代码中的破坏性更改
iOS
CAPBridgedPlugin 协议的更改
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,它将自动执行所有文件更改。
手动更新文件
更新 package.json
将 @capacitor/cli、@capacitor/core、@capacitor/android 和 @capacitor/ios 更新到 latest-5 版本。