Cordova 插件和依赖项
Posted
技术标签:
【中文标题】Cordova 插件和依赖项【英文标题】:Cordova Plugins and dependencies 【发布时间】:2016-01-12 15:13:53 【问题描述】:我想为 ios 创建一个使用其他预制 Cordova 插件并对其进行修改的 Cordova 插件。
例如,我想创建一个插件来上传 mp3 类型的音频文件,现在我想使用提供这些基本功能的“媒体”插件来录制、停止录制、播放、停止播放音频文件。不同的文件格式(默认媒体插件使用 Wav 格式,我想使用 mp3)而不修改“媒体”插件本身。
有什么办法可以做到吗?
感谢您的帮助。
【问题讨论】:
【参考方案1】:实现这一点的方法是继承(来自本机代码而不是 js)。
创建您自己的自定义插件(与普通 Cordova 插件相同的文件结构,带有 plugin.xml 文件、WWW 文件夹、Src 等)。
在您的 plugin.xml 文件中,将 Media 插件声明为依赖项,当您安装自定义插件时,它将动态带入您的项目(请注意,根据您机器上的 Cordova 版本,“Media”插件本机代码可能会有一些差异)。
<dependency id="org.apache.cordova.media"/>
当您创建自己的类并将其命名为 CDVYourClass 并使其成为 CDVSound 的子类时,“媒体”插件类 (IOS) 称为“CDVSound”。
从这里您可以覆盖您想要更改的方法(例如,如果您想要录制 .m4a 文件而不是媒体插件默认的 .WAV)。
有关构建 Cordova 插件插件的更多信息,请参阅 Cordova 文档。
https://cordova.apache.org/docs/en/4.0.0/guide/cli/
这是关于自定义插件的好读物。
http://docs.telerik.com/platform/appbuilder/cordova/using-plugins/using-custom-plugins/making-plugman-compatible/create-modify-plugin-xml
除了这个答案之外,还有一些“私有”方法,您最初无法覆盖这些方法来克服这个问题,使用 Objective C 类别来扩展父类(在这种情况下为 CDVSound),然后在类别 .m 文件中声明它,然后您可以将类别类导入父类并覆盖私有方法。
【讨论】:
以上是关于Cordova 插件和依赖项的主要内容,如果未能解决你的问题,请参考以下文章
Cordova 构建错误:相机插件缺少 android.support.v4 库依赖项
无法安装“cordova-plugin-media-capture”:CordovaError
生成 apk 时出现 Cordova-plugin-file 错误