美文网首页
cordova自定义插件流程

cordova自定义插件流程

作者: 高思阳 | 来源:发表于2019-06-26 15:02 被阅读0次

    在H5 app开发过程中,有时候需要用到各种插件来调用底层设备,比如摄像头、返回键等功能,像这些都是比较常见的,而且这些插件也有现成的。但有时候需要用到的一些个性化的插件,比如如何分享链接到企业微信,在微信中,提供了JS-SDK来调用底层设备或者分享功能,但是如果使用cordova打包成apk之后,就无法使用,因此需要开发自定义插件,通过调用原生的方式来实现。下面介绍下在cordova工程中如何开发自定义插件。

    一、安装plumam命令行工具

    在命令行窗口输入:

    npm install  -g  plugman
    

    二、安装完之后创建插件

    plugman create  --name pluginName  --plugin_id pluginID  --plugin_version version  [--path path]  [--variable NAME=VALUE]
    

    参数说明:

    • pluginName:插件名称,如WechatShare;
    • pluginID:插件id, 如:info.2bowl.wechat.share;
    • version:版本号, 如:1.0.0;
    • path:插件存放的绝对或相对路径;
    • variable NAME=VALUE:扩展参数,如说明或作者

    示例:

    plugman create  --name  WechatShare  --plugin_id info.2bowl.wechat.share  --plugin_version 1.0.0
    

    三、添加platform

    创建完插件后,切换到插件根目录下

    cd WechatShare
    

    然后添加android和ios平台

    plugman platform add  --platform_name android
    
    plugman platform add  --platform_name ios
    

    之后可以看到在src目录下生成了ios和android两个目录,这里以android为例:

    public  class  WechatShare  extends  CordovaPlugin  {
    
      @Override
    
      public  boolean  execute(String  action,  JSONArray args,  CallbackContext callbackContext)  throws  JSONException  {
    
        if  (action.equals("coolMethod"))  {
    
            String  message  =  args.getString(0);
    
            this.coolMethod(message,  callbackContext);
    
            return  true;
    
        }
    
        return  false;
    
      }
    
      private  void  coolMethod(String  message,  CallbackContext callbackContext)  {
    
        if  (message  !=  null  &&  message.length()  >  0)  {
    
            callbackContext.success(message);
    
        }  else  {
    
            callbackContext.error("Expected one non-empty string argument.");
    
        }
    
      }
    
    }
    
    

    默认生成的是coolMethod方法,这里可以将他给为我们自定义的方法名即可。例如我修改为shareMediaLink,修改完成之后,在shareMediaLink方法里写业务逻辑。

    public  class  WechatShare  extends  CordovaPlugin  {
    
      @Override
    
      public  boolean  execute(String  action,  JSONArray args,  CallbackContext callbackContext)  throws  JSONException  {
    
        if  (action.equals("shareMediaLink"))  {
    
            String  message  =  args.getString(0);
    
            this.coolMethod(message,  callbackContext);
    
            return  true;
    
        }
    
        return  false;
    
      }
    
      private  void  shareMediaLink(String  message,  CallbackContext callbackContext)  {
    
        if  (message  !=  null  &&  message.length()  >  0)  {
    
            callbackContext.success(message);
    
        }  else  {
    
            callbackContext.error("Expected one non-empty string argument.");
    
        }
    
      }
    
    }
    
    

    修改完之后,切换到www目录下,修改WechatShare.js

    var  exec  =  require('cordova/exec');
    
    exports.shareMediaLink  =  function  (arg0,  success,  error)  {
    
        exec(success,  error,  'WechatShare',  'shareMediaLink',  [arg0]);
    
    };
    
    

    四、创建package.json文件

    这里利用npm init来自动生成package.json

    {
    
    "name":  "WechatShare",
    
      "version":  "1.0.0",
    
      "description":  "WechatShare",
    
      "cordova":  {
    
        "id":  "info.2bowl.wechat.share",
    
        "platforms":  [
    
          "android",
    
          "ios"
    
        ]
    
      },
    
      "keywords":  [],
    
      "author":  "5loong",
    
      "license":  "MIT"
    
    }
    
    

    五、安装已开发插件

    如果已经创建了cordova工程,那么在cordova工程下执行如下命令:

    cordova plugin add  E:\KuoYuApp\plugins\WechatShare
    

    安装完之后,在项目中进行调用

    cordova.plugins.WechatShare.shareMediaLink('test');
    
    

    猫头鹰工作室 » 如何自定义Cordova插件

    相关文章

      网友评论

          本文标题:cordova自定义插件流程

          本文链接:https://www.haomeiwen.com/subject/lfuccctx.html