探索phonegap插件开发

  由于公司主要做phonegap跨平台开发,一直对开发phonegap插件有点感冒,查询了一下博客资料后开始实践验证一下,以作敲门砖。

  直接上干货,如下:

主要步骤:

1,cordova新建一个工程,并添加android平台

2,把cordova工程导入到Eclipse

3,在src目录下编写java文件

4,在res/xml 目录下配置  config.xml 文件

5,在plugin目录下编写javascript接口文件

6,在assents 目录下的  cordova-plugins.js文件添加配置

7,最后,直接调用javascript接口文件中的测试方法

 

详细内容:

一、cordova新建一个工程,并添加android平台

通过控制台中的命令创建一个cordova工程,工程命名为“myPlugin”:

1 cordova create myPlugin com.example.myPlugin myPlugin
2 cd myPlugin
3 cordova platforms add android

二、把cordova工程导入到Eclipse

 

三、在src目录下编写java文件

 1 package zxing.plugins;
 2 
 3 import org.apache.cordova.CallbackContext;
 4 import org.apache.cordova.CordovaPlugin;
 5 import org.json.JSONArray;
 6 import org.json.JSONException;
 7 
 8 import android.content.Intent;
 9 import android.util.Log;
10 import android.widget.Toast;
11 
12 import com.example.myPlugin.MainActivity;
13 
14 /*
15  *自制cordova插件 test_plugin
16  * 
17  */
18 
19 public class test_plugin extends CordovaPlugin {
20 
21     CallbackContext callbackContext;
22     
23     public test_plugin(){
24         
25     }
26     
27     @Override
28     public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
29         
30         this.callbackContext = callbackContext;
31         
32         if(action.equals("getname")){
33             String msg = args.getString(0);
34             callbackContext.success(msg);
35             return true;
36         }
37         return false;
38     }
39     
40 }

四、在res/xml 目录下配置  config.xml 文件

 

1 <feature name="Test">
2         <param name="android-package" value="zxing.plugins.test_plugin" />
3 </feature>

 

 

五、在plugin目录下编写javascript接口文件

 

 1 cordova.define("zxing.plugins.test", function(require, exports, module) { 
 2 
 3 var exec = require('cordova/exec');
 4 
 5 
 6 
 7 module.exports = {
 8 
 9     /**
10      * 一共5个参数
11        第一个 :成功会掉
12        第二个 :失败回调
13        第三个 :将要调用的类的配置名字(在config.xml中配置 稍后在下面会讲解)
14        第四个 :调用的方法名(一个类里可能有多个方法 靠这个参数区分)
15        第五个 :传递的参数  以json的格式
16      */22     getname: function(args) {
23         exec(function(data){
24             alert(data);
25         }, null, "Test", "getname", [args]);
26     }
27 };
28 
29 });

 

 

 

六、在assents 目录下的  cordova-plugins.js文件添加配置

 

 1 cordova.define('cordova/plugin_list', function(require, exports, module) {
 2 module.exports = [
 3     {
 4         "file": "plugins/cordova-plugin-whitelist/whitelist.js",
 5         "id": "cordova-plugin-whitelist.whitelist",
 6         "runs": true
 7     },  
 8     {  
 9         "file": "plugins/test.js",  
10         "id": "zxing.plugins.test",  
11         "merges": [  
12             "navigator.test"  
13         ]  
14     }
15 ];
16 module.exports.metadata = 
17 // TOP OF METADATA
18 {
19     "cordova-plugin-whitelist": "1.0.0",  
20     "zxing.plugins.test" :"0.0.1"
21 }
22 });

 

 

 

七、最后,直接调用javascript接口文件中的测试方法

 

1 //调用getname方法
2 navigator.test.getname("EricCui");

 

 

最后运行的效果图:

 

 

总结:

  这是一次好的开始,心里有点小激动^..^,继续努力。。

 

转载于:https://www.cnblogs.com/eric-cui/p/4885982.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值