自己写一个可以通过命令安装的cordova插件

目标:写一个可以让别人通过命令安装的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:插件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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现一个使用 Cordova 件获取蓝牙数据的 demo,你需要以下步骤: 1. 首先,确认你的 Cordova 应用程序中已经安装了蓝牙件。你可以使用以下命令安装 Cordova-plugin-bluetooth-serial: ``` cordova plugin add cordova-plugin-bluetooth-serial ``` 2. 在 Cordova 应用程序中添加一个按钮,当用户点击该按钮时,应用程序开始扫描附近的蓝牙设备。你可以使用以下代码来实现该功能: ``` document.getElementById('scan-btn').addEventListener('click', function() { bluetoothSerial.list(function(devices) { console.log(devices); }, function(error) { console.log(error); }); }); ``` 该代码会调用 BluetoothSerial.list() 函数扫描附近的蓝牙设备,并将结果打印到控制台中。 3. 当用户选择一个设备并连接到它时,你需要使用 BluetoothSerial.subscribeRawData() 函数订阅设备发送过来的原始数据。以下是一个示例代码: ``` var deviceId = '00:11:22:33:44:55'; bluetoothSerial.connect(deviceId, function() { console.log('Connected to device ' + deviceId); bluetoothSerial.subscribeRawData(function(data) { console.log('Received data: ' + JSON.stringify(data)); }, function(error) { console.log(error); }); }, function(error) { console.log(error); }); ``` 该代码会连接到指定的设备,并使用 BluetoothSerial.subscribeRawData() 函数订阅设备发送过来的原始数据。当数据接收到时,它会被打印到控制台中。 以上就是一个简单的使用 Cordova 件获取蓝牙数据的 demo。需要注意的是,使用不同的蓝牙件可能会有不同的 API,你需要查阅相应的文档来了解如何正确使用它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值