自己写一个可以通过命令安装的cordova插件
2016-09-12 18:32
288 查看
目标:写一个可以让别人通过命令安装的android平台的cordova插件
步骤:
1、准备一个cordova项目导入到eclipse中(为了方便安装插件可以把cordova项目中的platform做为eclipse的工作空间,如果不懂可以看这里 点击打开链接)
一、创建空白的cordova项目
1、到你想创建项目的目录下,打开黑窗口
cordova create hellocom.example.helloHelloWorld
hello:项目目录名
com.exmple.hello:项目包名
HelloWorld:应用的名字
2、cd到刚才创建的目录hello下,添加android平台
cd hello
cordova platform add android
2、准备一个干净的插件
plugman create --name pluginb --plugin_id cordova-myplugin-pluginb --plugin_version 1.0.0
PluginB:插件名
cordova-myplugin-pluginb:
c6f7
插件id
新插件的目录结构
PluginB
|--src
|--
|--www
|--pluginb.js
|--plugin.xml
plugin.xml代码
3、在本地修改插件plugin.xml,以及添加java文件
修改插件plugin.xml
添加插件的java文件
新建一个PluginB.java的文件放在插件的src目录下就可以,具体的代码可以在导入eclipse后再写。
4、将插件通过命令安装到项目中并执行prepare
plugman install --platform android --project platforms\android --plugin ../PluginsDIY/pluginb
cordova prepare android
做完上面的操作,你的插件在项目中就可以看到了,只不过还没有任何用能,因为java代码和js代码 还没写
----------------------------------------------------------------------------------------------------------------------------------------------------
5、根据功能修改插件的java代码和js代码
java代码:
js代码:
6、测试没问题后,将java文件复制到插件的src/android目录下,将js文件复制到插件的www目录下
注意需要红色部分去掉
7、上面的步骤完成,这个插件就可以通过命令安装到项目中了
通过命令删除掉项目中插件
plugman uninstall --platform android --project platforms\android --plugin cordova-myplugin-pluginb
cordova prepare android
然后再通过命令安装插件
plugman install --platform android --project platforms\android --plugin ../PluginsDIY/pluginb(插件的位置在当前目录上一级目录下的PluginsDIY目录下)
cordova prepare android
步骤:
1、准备一个cordova项目导入到eclipse中(为了方便安装插件可以把cordova项目中的platform做为eclipse的工作空间,如果不懂可以看这里 点击打开链接)
一、创建空白的cordova项目
1、到你想创建项目的目录下,打开黑窗口
cordova create hellocom.example.helloHelloWorld
hello:项目目录名
com.exmple.hello:项目包名
HelloWorld:应用的名字
2、cd到刚才创建的目录hello下,添加android平台
cd hello
cordova platform add android
2、准备一个干净的插件
plugman create --name pluginb --plugin_id cordova-myplugin-pluginb --plugin_version 1.0.0
PluginB:插件名
cordova-myplugin-pluginb:
c6f7
插件id
新插件的目录结构
PluginB
|--src
|--
|--www
|--pluginb.js
|--plugin.xml
plugin.xml代码
<?xml version='1.0' encoding='utf-8'?> <plugin id="<span style="background-color: rgb(255, 204, 204);">cordova-myPlugin-pluginb</span>" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android"> <name><span style="background-color: rgb(255, 204, 204);">PluginB</span></name> <js-module name="PluginB" src="www/PluginB.js"> <clobbers target="cordova.plugins.PluginB" /> </js-module> </plugin>
3、在本地修改插件plugin.xml,以及添加java文件
修改插件plugin.xml
<?xml version='1.0' encoding='utf-8'?> <plugin id="cordova-myPlugin-pluginb" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android"> <name>PluginB</name> <js-module name="PluginB" src="www/PluginB.js"> <clobbers target="cordova.plugins.PluginB" /> </js-module>
<span style="background-color: rgb(204, 204, 204);"> <!--针对android平台的配置--> <platform name="android"> <em><!--将插件src/android目录下的PluginB复制到项目的src/com/plugins/pluginb目录下--></em> <source-file src="src/android/PluginB.java" target-dir="<strong>src/com/plugins/pluginb</strong>" /> <em><!--这里是将feature这个标签队里面的内容复制到config.xml中--></em> <config-file target="res/xml/config.xml" parent="/*"> <feature name="PluginB"></span>
<span style="background-color: rgb(204, 204, 204);"> <!--value:com.plugins.pluginb 插件的包名,pluginB 插件java文件名,插件的包名和插件的id不是一回事,虽然后有时候默认用插件id做包名--> <param name="android-package" value="<strong>com.plugins.pluginb.PluginB</strong>" /> <param name="onload" value="true" /> </feature> </config-file></span> </platform> </plugin>
添加插件的java文件
新建一个PluginB.java的文件放在插件的src目录下就可以,具体的代码可以在导入eclipse后再写。
4、将插件通过命令安装到项目中并执行prepare
plugman install --platform android --project platforms\android --plugin ../PluginsDIY/pluginb
cordova prepare android
做完上面的操作,你的插件在项目中就可以看到了,只不过还没有任何用能,因为java代码和js代码 还没写
----------------------------------------------------------------------------------------------------------------------------------------------------
5、根据功能修改插件的java代码和js代码
java代码:
public class PluginB extends CordovaPlugin { private Context context; public void initialize(CordovaInterface cordova, CordovaWebView webView) { super.initialize(cordova, webView); //获取context context = this.cordova.getActivity().getApplicationContext(); } @Override public boolean execute(String action, final CordovaArgs args, CallbackContext callbackContext) throws JSONException { // if ("save".equals(action)) { cordova.getThreadPool().execute(new Runnable() { public void run() { String key = args.optString(0); String value = args.optString(1); saveData(key, value); } }); } else if ("get".equals(action)) { String key = args.optString(0); String values = this.getString(context, key, ""); callbackContext.success(values); } return true; } private void saveData(String key, String value) { this.putString(context, key, value); } public static final String FILE_NAME = "share_data"; public static SharedPreferences sp; /** * 每次使用工具类的时候,首先判断是不是已经有sp对象了,如果有了就不用再次创建了。 * * @param context * @return */ private static SharedPreferences getPreferences(Context context) { if (sp == null) { sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); } return sp; } /** * 保存key value值 * * @param context * @param key * @param value */ public static void putString(Context context, String key, String value) { SharedPreferences sp = getPreferences(context); sp.edit().putString(key, value).commit(); } /** * 根据key值获取value * * @param context * @param key * @param defValue * @return */ public static String getString(Context context, String key, String defValue) { String value = getPreferences(context).getString(key, defValue); return value; } }
js代码:
<span style="color: rgb(255, 0, 0);">cordova.define("cordova-myplugin-pluginb.PluginB", function(require, exports, module) {</span> var exec = require('cordova/exec'); var pluginb= { save:function() { uccess, error, "PluginB", "save", [key,value] }, get:function() { exec(null, null, "PluginB", "get", []); } }; module.exports = pluginb; <span style="color: rgb(255, 0, 0);">}); </span>
6、测试没问题后,将java文件复制到插件的src/android目录下,将js文件复制到插件的www目录下
注意需要红色部分去掉
<span style="color:#ff0000;">cordova.define("cordova-myplugin-pluginb.PluginB", function(require, exports, module) {</span> var exec = require('cordova/exec'); var pluginb= { save:function() { uccess, error, "PluginB", "save", [key,value] }, get:function() { exec(null, null, "PluginB", "get", []); } }; module.exports = pluginb; <span style="color:#ff0000;">}); </span>这样插件就写完了,如果想测试可以在index.html
7、上面的步骤完成,这个插件就可以通过命令安装到项目中了
通过命令删除掉项目中插件
plugman uninstall --platform android --project platforms\android --plugin cordova-myplugin-pluginb
cordova prepare android
然后再通过命令安装插件
plugman install --platform android --project platforms\android --plugin ../PluginsDIY/pluginb(插件的位置在当前目录上一级目录下的PluginsDIY目录下)
cordova prepare android
相关文章推荐
- Cordova - 常用的插件汇总(附插件的安装、查询、更新、删除等命令)
- 安装外部的maven依赖到自己的本地仓库,通过mvn命令的方式
- 如何安装整个linux系统中所需要的mp3播放库插件? 可以在安装rpmfusion仓库后直接通过dnf install进行按照就可以了
- 一、ElasticSearch5.6.3下载安装步骤 说明:ElasticSearch的运行不能用root执行,自己用useradd命令新建一个用户如下所示: sueradd chen passw
- 初识linux chmod命令/函数时我就产生一个有趣疑问:既然chmod可以改变权限, 那即使某用户原来没有某文件的权限, 也可以自己添加权限啊!
- HotkeyOpenWebsite:一个可以通过热键快速打开特定网址的Alfred Workflow插件
- 介绍一个在线的Linux,没有安装Linux或者虚拟机不喜欢用的童鞋可以简单的用这个jslinux测试各种命令
- IDEA 安装mybatis 插件 可以通过mapper定位到xml
- 看不懂自己写的代码,这对一个职业程序员来说是不可饶恕的--完美可以因天赋而成,也可通过无情的重复和实验实现。因为我不具有前者,我就一直坚持着后者。
- 在Ubuntu里安装Brackets无须下载,可以直接通过命令安装
- Cordova项目中遇到的一个插件安装的问题
- 我是如何在GitHub上开源一个项目的(截图说明) (VS2010可以安装git插件)
- MyEclipse下如何安装和使用ibatis插件(网上的资料对于myeclipse8.5根本就是没有用的,所以我还是自己选择了装了一个eclipse,然后将插件装在了eclipse中)
- Cordova - 常用的插件汇总(附插件的安装、查询、更新、删除等命令)
- 大数据平台监控(一):Ganglia在集群中快速安装方案【内含通过yum只下载不安装,需要安装一个yum的插件】
- 自己写一个简单的cordova插件
- Cordova - 常用的插件汇总(附插件的安装、查询、更新、删除等命令)
- Cordova - 常用的插件汇总(附插件的安装、查询、更新、删除等命令)
- 如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)。
- 介绍一个在线的Linux,没有安装Linux或者虚拟机不喜欢用的童鞋可以简单的用这个jslinux测试各种命令