cordova 插件之资源文件处理

最近帮忙搞这一些cordova ,在弄插件的时候发现有时候想在插件里面用一些自定义的layout,String,图片啥的获取资源文件的时候,写在插件里面后在引用R资源的时候上面倒入包名需要具体不同工程再去java文件里面再改这个import 的包,那这样的话别人使用你这个插件的话就很不爽了,还要自己去改代码。。。插件用起来就很不爽了。于是想了想这个插件里面有木有也像原生里面那样支持Module的直接模块化将想要用资源的代码全都放入Module里面,这样不就不用改import 的包了了。之后去cordova的官网看了看发现还真有这么个东西——framework。
网址:http://cordova.apache.org/docs/en/latest/plugin_ref/spec.html#js-module
先简单的说下framework,这个其实是在插件的plugin.xml 文件中加入一个framework 的标签然后然后就可以在插件中引用类似module的模块。以下以一个简单提示框为例。
具体流程如下:
第一步,将想要用的功能或者需要用资源的代码放入一个自己新建的原生的Module中。
比如我在自己的cui_library的Module中写了个AlertDialog并且提示框的布局是自定义的layout。

cordova 插件之资源文件处理_第1张图片

第二步,将原生中的module拷出来准备放入插件中。直接拷贝出来的模块的目录机构如下:
cordova 插件之资源文件处理_第2张图片

 如果想在插件中用这个模块的话还要调整下目录的结构,要调整的大致有这几个部分
 1.AndroidManifest.xml 移动到最外层
 2.res 资源文件夹整个移动到最外层
 3.将整个原src/main/java 文件夹下的代码文件剪切到src/目录下src目录下的其他东西可以删除。
 4.将原build文件夹删除
 调整后的module目录下应该有七个文件:
    AndroidManifest.xml
    build.gradle
    xxxx.iml
    proguard-rules.pro
    libs文件夹
    src文件夹
    res文件夹

cordova 插件之资源文件处理_第3张图片

第三步,将模块加入插件并在插件的plugin.xml文件中添加framework标签。
将模块放入插件的android目录下。
cordova 插件之资源文件处理_第4张图片

在插件的plugin.xml 文件夹中的android平台代码处添加framew标签。
  

注:如果不会插件的开发或者不清查插件的目录结构可以先看以下这篇文章:http://blog.csdn.net/cool_fuwei/article/details/51151759

第四步,插件中调用模块的内容。
在插件的java文件中写具体插件的功能的时候就可以直接引用我们的cui_library 里面的内容了。并且后续把插件打到别的工程中去就不用担心资源的引用的问题。
cordova 插件之资源文件处理_第5张图片

ok,到这里就差不多了,剩下的插件的一些文件自行补充完整后就可以试着自己的带有模块的插件的功能了。当然我个人觉得这个方法其实对于熟悉原生开发的同学来说也是一种比较靠近原生的一种写插件方式。可以将某个功能不管是有界面的或者是没有界面功能都放入到自己先在原生的module中。然后在插件的java文件中调用,会在写插件的时候少写很多xml中的内容,也可以让插件的结构看起来更瘦身。

测试插件下载地址:
http://download.csdn.net/download/cuiweicai/9876293

你可能感兴趣的:(cordova)