Android Cordova插件开发

       上周刚搞完ApiCould的自定义模块开发,这周又有一个新的需求Cordova插件开发,经过几天的奋斗,看了不少博客,总算搞出了Cordova的打印插件。在完成ApiCodld和Cordova插件后感觉这两个在插件开发步骤上差不了太多,这篇文章主要记录下自己的开发过程,方便以后使用。

一、环境

1、node.js、cordova

2、Android studio3.5.1、jdk1.8

二、开发准备

 1、安装cordova,npm install -g cordova

 2、创建项目:cordova create MyTestProgject

 3、添加android:cordova platforms add android

  项目结构如下,android工程在platforms里

 

三、开始开发
  1、导入上面创建的cordova项目里的android工程


2、创建自己的插件类并继承CordovaPlugin,实现initialize、execute方法,execute方法就是你js里面执行的,我的插件如下
public class PrintlcPlugin extends CordovaPlugin {

    private final String TAG=PrintlcPlugin.class.getName ();
    private IPosApi mPosApi;
    private Context context;
    private CallbackContext callbackContext;

    @Override
    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
        super.initialize (cordova, webView);
        Log.e (TAG, "initialize:");
        context=cordova.getContext ();
        mPosApi=PosFactory.getPosDevice (context);
    }


    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        this.callbackContext=callbackContext;
        switch (action) {
            case "initPrint":
                initPrint(callbackContext);
                break;
            case "resume":
                resumePrint ();
                break;
            case "pause":
                pausePrint ();
                break;
            case "setEncode":
                setEncode (args);
                break;
            case "setLanguage":
                setLanguage (args);
                break;
            case "printFeatureList":
                printFeatureList ();
                break;
            case "closePrint":
                closePrint (callbackContext);
                break;
            case "printText":
                printText (args);
                break;
            case "printQR":
                printQR (args);
                break;
            case "printBarcode":
                printBarcode (args);
                break;
            case "printCheckMark":
                printCheckMark (args);
                break;
            case "printFeedPaper":
                printFeedPaper (args);
                break;
            case "printBackPaper":
                printBackPaper (args);
                break;
            case "printImage":
                printImage ();
                break;
            case "startPrint":
                startPrint ();
                break;
            default:
                return false;
        }
        return false;
    }

    public void initPrint(CallbackContext callbackContext) {
        try{
            Log.e (TAG, "initPrint: ");
            mPosApi.setPos ();
            mPosApi.setPrintEventListener (new OnP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值