本人菜鸟一枚,初写文章,写的不好得地方,还请提出意见或建议。
网上对于cordova的各种文件的作用讲解比较少,所以本篇文章主要讲解cordova插件各个文件的作用。
本文章主要讲解Cordova 混合开发的配置文件以操作使用,如有不到之处,可留言
- 1.新建一个项目: (win+R 打开命令窗口,或使用其他方式)
路径名>cordova create 文件名 包名 工程名 - 2.添加Android平台:cordova platform add android
- 3 创建一个新的插件 plugman create --name 插件名 --plugin_id 插件ID --plugin_version 插件版本号
- 例子: plugman create --name cordova --plugin_id com.test.cordova--plugin_version 1.0.0
- 4 添加插件到 android项目里 cordova plugin add 插件的目录地址
- 例子:cordova plugin add C:\user\uninstallPlugin
- 5 添加插件需要用到package.json 上面提到创建新插件但是创建后发现并没有这个package.json文件 ,需要进入此插件目录下 npm init 输入此命令生成package.json文件,然后会在窗口提示配置此插件信息,无脑下一步即可(不影响使用)。
- ---------------------------------------------------------此为分割线--------------------------------------------------------------------------
- plugin.xml 此文件为cordova插件重中之重 谨记,此xml 会配置各种android中需要的东西,如:权限,类,三方库等;
-
- 如上图所示,ImageCamera.js 稍后会讲到,此js文件是与页面交互的接口文件 可以看到
- <js-module name="ImageCamera" src="www/ImageCamera.js">
- <clobbers target="cordova.plugins.ImageCamera" />
- </js-module>
- 为js人员调用各个方法的路径<clobbers target="cordova.plugins.ImageCamera" /> 各种方法具体命名稍后都会在ImageCamera.js中体现不要急
- <platform name="android"></platform> 此标签为代表标签内的所有配置均为android所用
- <config-file parent="/*" target="res/xml/config.xml">
<feature name="ImageCamera">
<param name="android-package" value="xxx.xxx.xxx.ImageCamera" />
</feature>
</config-file> - config.xml这个文件是cordova 配置所需,尽量不要手动修改,如有此文件问题可请教js同事
,因为里边的都是js的东西
- <feature name="ImageCamera">
<param name="android-package" value="xxx.xxx.xxx.ImageCamera" />
</feature> - 要知道cordova混合开发需要交互,因此,cordova提供了一个可交互又必须要存在的类 CordovaPlugin 上边的ImageCamera就是继承此类,这个类下面会讲到,大家不要着急,value="xxx.xxx.xxx.ImageCamera"这个代表 这个类的路径,切记要正确。
- <!-- 依赖库 -->
<framework src="org.greenrobot:eventbus:3.0.0" />这个为开发当中需要用到的各种三方库配置,要不然在集成插件的时候cordova可不会给你添加这些三方库的东西。 - 权限,这个不用再多介绍了,需要什么自己按照这种方式去写就可以了
- <!-- application 内的 配置-->
<config-file parent="/manifest/application" target="AndroidManifest.xml">
<activity
android:name="xxx.xxx.xxx.CameraActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" />
</config-file>
-
AndroidManifest做过android开发的同学都知道 这个文件的重要性,所以依然要声明,内部因为要声明组件,所以activity也需要声明包括其他的组件也一样,类似上边
- <!-- Java代码 -->
<source-file src="src/android/SystemUtils.java" target-dir="src/com/xxx/xxx" /> - 要知道,cordova比较坑的就是配置,所以各种文件都要声明非常麻烦java类的声明 前边为插件的路径,后边为集成到cordova项目中的路径(注意:各种类都需要声明)
- <!-- drawable -->
<source-file src="src/android/res/drawable/selector_btn_camera_close1.xml" target-dir="res/drawable"/> - 不光是类,资源文件一样需要声明,如果一个插件有很多类和资源,那就吐血吧!
- plugin.xml文件里边基本就这些了,如果还有不明白的地方可留言!
- -----------------------------------此为分割线----------------------------------------------
- 请看上图 路径 为什么会有一个 android呢,因为插件不光android的写,ios也要写,所以只是区分一下而已,还记得上边提到的一个cordova提供的交互类吗 CordovaPlugin
-
- 有想了解CordovaPlugin 的同学可以去看看,他的生命周期和Activity一样。
-
- 如上图所示,一个自定义相机的动能,action为接口所回的字符串做一些处理如果 成功 则 return true 失败return false。
-
- 有时候我们需要给js传值,这个时候需要用到此方法,传入对象,其中马赛克部分为前边xml中的配置,可去上面查看。
- -------------------------------此为分割线-------------------------------------
-
-
- js接口文件,这边对应上边类中定义的 字段,返回相应的功能,会一些js的同学看着应该比较easy 。
- 先写到这吧,第一次写完全不知道写什么作为一个android开发人员居然在写cordova的博客也是醉了,最后各位同学有意见的提意见吧,哈哈