【问题标题】:Understanding ionic and cordova wrappers了解 ionic 和 cordova 包装器
【发布时间】:2020-05-28 19:42:35
【问题描述】:
- 要升级插件,建议先卸载 - 添加cordova - 然后安装该插件。
例如:The native Keyboard plugin
它有两个步骤:
- 添加
cordova-plugin-ionic-keyboard
- 安装
@ionic-native/keyboard
这两者有什么关系?他们的版本有什么关系?如果我要安装特定版本的键盘,我是否也应该为科尔多瓦选择相应的版本?例如,@ionic-native/keyboard 位于 5.21.5,cordova-plugin-ionic-keyboard 位于 2.2.0。
-
config.xml 中的这一行是什么意思?这对我用于构建应用的 ios 版本有任何影响吗?
<engine name="ios" spec="^5.0.0" />
- 为什么我还有这两个(配置和包)文件?我看到科尔多瓦保存将详细信息添加到两个文件中!
- 我可以在哪里交叉检查他们是否在更新中对插件的项目结构进行了更改。例如,我使用的是键盘版本4.20.0,当升级到5.21.5 时,我必须将导入更改为指向
ngx 文件夹。我想找到他们进行此更改的第一个版本,并且无法理解文档。如何将这些影响降到最低!?
【问题讨论】:
标签:
cordova
ionic-framework
cordova-plugins
ionic-native
【解决方案1】:
第一个问题:
ionic cordova plugin add 命令将下载包含 package.json、config.xml 的 cordova 插件并将插件保存到您的文件夹并为您的每个平台设置它使用。
ionic-native 如您所说,只是您刚刚添加的插件的包装器。它将包键盘安装到您的 node-modules 文件夹中,并将插件设置为 package.json 的正确方式。
您还可以在需要使用插件的任何地方注入 Angular 提供程序。
这一行:
<engine name="ios" spec="^5.0.0" />
构建器将使用它来了解它将用于 ios 引擎的 ios 配置。此外,当您使用模拟器尝试使您的应用程序在本地工作时。
每个插件都可能有一个 iOS 版本 / Android 版本 / Windows Phone 版本。如果您修改此配置文件,某些功能将在某些平台上不可用。
因此,对于您的第三个问题,当您进行构建或使用 "ionic serve" 时,将读取 package.json 并创建一个 package-lock.json。这些文件是构建或本地运行应用程序所必需的。
最后,
当您使用这类插件时,我建议您创建与主代码分离的类或服务。
在这种情况下,如果发生变化,您只需修改一个“文件”,然后您的所有应用程序将继续正常工作。
在你的主代码中只是一个
import {MyKeyboardClass} from "../shared-components/keyboard";
使您的代码简单且易于更改。
希望有帮助:)