前面写了一下简单的插件的开发过程,那么现在问题来了,开发一个简单的插件自然是很简单的,但是如果开发的是一个比较复杂的插件,包括需要对一些配置文件进行修改的时候,手动将插件集成到项目中就显得很麻烦了,不过不用担心,这个问题自然可以解决,phoneGap/cordova 插件是可以做成自动安装的,包括一些配置信息和依赖库,都可以通过自动安装解决,那么接下来就是如何让自己的插件能够自动安装并且自动将需要的信息配置好。
首先,生成自动安装插件,需要我们配置一个plugin.xml的文件,这是自动安装的核心,自动安装所有的操作都是通过它来完成的。
上图是一个非常简单的一个插件的配置文件,下面对它(下面统称为:配置文件)进行讲解:
1.这是一个xml文件,首先是根标签
这是配置文件的根标签, 中 id 是插件的标识,应与插件文件夹名称一致、version 是插件版本号
2.在根标签中就是配置插件的各种信息,首先是插件的基本信息:
a.pluginTest 就是插件的名称
b.Plugin for Phonegap是插件的描述
c.MIT这个不太清楚,貌似是遵循某些协议或者许可的东西吧,如果有认清楚希望不吝赐教
d.phonegap, cordova是标签,类似博文中的标签那样的东西
3. 插件对于cordova版本的支持
name="cordova"version=">=3.0.0"/>
4. js 文件的配置
src="www/pluginTest.js"name="MyPlugin">
target="window.myPlugin"/>
在这里要说一点,配置成自动安装的插件,js文件就不能写那种简单的形式,而是要写成下图中的形式
且配置文件中 target="window.myPlugin" 中myPlugin 这部分,应该与js中 var myPlugin 一致。
5.配置平台,在这里只讲解iOS平台的配置
配置平台的标签为name="ios">name为平台名称
在这里,主要是
(1).将插件中的文件添加到项目中,并将项目中插件文件在config.xml 文件中进行引用。
添加文件:
添加源文件:<source-filesrc="src/ios/pluginTest.m"/>
添加头文件:<header-filesrc="src/ios/pluginTest.h"/>
添加资源文件:src="src/ios/MMPSilence.wav"/>
添加库文件:<frameworksrc="src/ios/myTset.framework"custom="true"/>
其中src为文件在插件文件夹中的相对路径
添加引用:
光把文件添加进入工程中还不行,还需要对其添加引用,这里只需要对与js进行通讯的文件添加引用就可以了
图中name="pluginTest">,name为文件名,name="ios-package"value="pluginTest"/>中value与文件名相同
(2).修改平台对应的配置文件,如ios中的info.plist等配置文件,如下图:
图中为在iOS的info.plist文件中添加 UIBackGroundModes,NSLocationAlwaysUsageDescription 两个键值对,target 为info.plist 文件名,parent 为添加的key ,中间部分为添加的value值
(3).添加插件的依赖库,如图:
src填写需要添加的库文件名称即可
到这里基本已经配置完成,新建一个工程,检验一下成果
注:插件文件夹结构一般为:
以上plugin.xml文件中src可根据实际插件目录结构进行修改
将插件添加到项目中:
cd进入项目文件夹,输入命令:cordova plugin add {插件文件夹路径}
添加之后:cordova build 编译一下
然后xcode打开,如图:
我们的插件已经添加进去了,framework也在里面,然后看一下info.plist有没有修改成功
可以看到,我们添加的信息,都已经出现在里面了
这个时候我们在index.js中调用一下
最终结果调用成功了