plugin.xml文件里的platform标签的说明
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="Device" >
<param name="android-package" value="org.apache.cordova.device.Device"/>
</feature>
</config-file>
<source-file src="src/android/Device.java" target-dir="src/org/apache/cordova/device" />
</platform>
这篇文章主要讲解Cordova插件开发中,plugin.xml文件的platform表签的用途。参考文章:
http://cordova.apache.org/docs/en/latest/plugin_ref/spec.html
http://cordova.apache.org/docs/en/latest/guide/platforms/android/plugin.html
本文章只是作为我自己的学习总结,如果你们看得不是很懂的话,可以看以上的参考文献。
当我们在进行Cordova进行webapp开发时,我们经常会调用手机里的设备如摄像头、通讯录等等,而我们是通过js调用Cordova的WebView引擎来调用插件实现的。
关于插件Cordova已经为我们提供了一些常用的插件,并且官网也已经有了非常丰富的开源插件库:
http://cordova.apache.org/plugins/。
当你把插件下载下来之后,你会发现每个插件里都有一个plugin.xml文件。当然我们也可以自己开发插件,原理也一样,每个插件都需要有一个plugin.xml文件。今天我就只讲此文件的platform标签。
1、
<platform name="android"></platform>
name属性的取值可以为ios, android, wp8, windows 等等,name用于说明此标签里的内容应用于那个平台。由于这里指定为android平台,所以当cordova打包为android平台时,此platform标签内的内容便有效。
2、
<config-file target="res/xml/config.xml" parent="/*">
</config-file>
config-file用于将此标签内的内容注入到Cordova project的target指定的文件中。例如以上的platform为android,target为”res/xml/config.xml”,所以当cordova打包为android平台时,config-file内的内容会添加到”res/xml/config.xml”文件中。
3、
<feature name="Device" >
<param name="android-package" value="org.apache.cordova.device.Device"/>
</feature>
feature的name为服务名,js将通过此服务名调用此插件,而 param里的value对应java类的全路径
我个人的理解是,当js调用cordova插件时,js通过调用feature的服务名Device,然后此服务的Native Code本地代码为org.apache.cordova.device.Device.java类。
4、
<source-file src="src/android/Device.java" target-dir="src/org/apache/cordova/device" />
source-file标签用于将src/android/Device.java类Copy到src/org/apache/cordova/device目录下