参考了网上很多篇关于cordova插件开发的文章,写一篇学习笔记吧。
附上我学习的链接:http://blog.csdn.net/cool_fuwei/article/details/51151759
1.安装好插件后在项目中的目录 如下图,
其中,.java .js .xml 这三个文件是需要我们自己编写的。
2.下面简单的介绍一下这三个文件
a. plugin.xml
<plugin xmlns:android="http://schemas.android.com/apk/res/android"
id="coolPlugin"
version="0.0.1"
xmlns="http://apache.org/cordova/ns/plugins/1.0" >
<!-- id为安装好后显示在项目中的插件名字 -->
<name>CoolPlugin</name>
<js-module
name="CoolPlugin"
src="www/CoolPlugin.js" >
<!-- src引用www目录下的该js文件 -->
<clobbers target="cordova.plugins.CoolPlugin" ></clobbers>
<!-- clobbers 在js中的调用方式 -->
</js-module>
<!-- android -->
<platform name="android" >
<config-file
parent="/*"
target="res/xml/config.xml" >
<!-- target 将以下内容在该目录下注册 -->
<feature name="ShowToast" >
<!-- feature 是后面方法里的一个传参 -->
<param
name="android-package"
value="com.cool.toast.ShowToast" >
</param>
</feature>
</config-file>
<!-- src文件目录 dir安装后所在目录 -->
<source-file
src="src/android/ShowToast.java"
target-dir="src/com/cool/toast" >
</source-file>
<!-- 一些插件所需的权限在这里声明并最终写入AndroidManifest.xml -->
<config-file
parent="/*"
target="AndroidManifest.xml" >
<uses-permission android:name="android.permission.READ_PHONE_STATE" ></uses-permission>
</config-file>
</platform>
</plugin>
b. CoolPlugin.js
<!--require 用于引入我们的类,expors用于导出我们的方法.这里暴露了toast方法,供我们在app中调用-- >
<!--ShowToast是plugin.xml中注册的feature-->
<!--toast 是传入java文件的action-->
<!--arg0是自己定义的参数以jsonArray的形式进行传递-->
var exec = require('cordova/exec');
exports.toast = function(arg0, success, error) {
exec(success, error, "ShowToast", "toast", [arg0]);
};
package com.cool.toast;
import android.widget.Toast;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
<!--继承了CordovaPlugin重写execute,根据传入的action和args执行代码并返回一个回调方法 -->
public class ShowToast extends CordovaPlugin{
private CallbackContext mCallbackContext;
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
this.mCallbackContext = callbackContext;
if("toast".equals(action)){
String msg = args.getString(0);
Toast.makeText(cordova.getActivity(),msg,Toast.LENGTH_SHORT).show();
callbackContext.success("success");
return true;
}
mCallbackContext.error("error");
return false;
}
}
3.
安装完成后在项目中这样调用
$scope.submit = function() {
cordova.plugins.CoolPlugin.toast('吐司',function(msg){
alert(msg);
},function(msg){
alert(msg);
})
};