需要android建议的phonegap自定义插件

时间:2012-08-09 10:04:44

标签: android plugins cordova

嗨,我在移动应用程序中。

我已经在phonegap(html5,JQuery,JS)中开发了一个应用程序,我想开发一个可以打印到BT打印机的插件。

我下载了打印机制造商的SDK,并使用以下方式将相应的.jar文件导入到我的项目中:

将此库包含在您的项目中:

  1. 将相应的库文件从SDK包

  2. 拖到Project Explorer中
  3. 右键单击项目文件夹,然后选择“属性”

  4. 单击Java Build Path

  5. 单击“库”和“添加JAR”按钮

  6. 在主要代码的顶部添加:

    import com.starmicronics.stario.StarIOPort;

    import com.starmicronics.stario.StarIOPortException;

    import com.starmicronics.stario.StarPrinterStatus;

  7. 现在您可以访问StarIO的所有方法了!

  8. 我创建了以下插件

    JS

    var HelloPlugin = {
    
        callNativeFunction: function (success, fail, resultType) {
            return cordova.exec(success, fail, "com.tricedesigns.HelloPlugin", "nativeAction", [resultType]);
        }
    };
    

    的java

    package com.tricedesigns;
    
    import com.starmicronics.stario.StarIOPort;
    import com.starmicronics.stario.StarIOPortException;
    import com.starmicronics.stario.StarPrinterStatus;
    
    import org.apache.cordova.api.Plugin;
    import org.apache.cordova.api.PluginResult;
    import org.json.JSONArray;
    
    import android.app.AlertDialog;
    import android.app.AlertDialog.Builder;
    import android.content.Context;
    import android.util.Log;
    
    
    
    public class HelloPlugin extends Plugin {
    
        public static final String NATIVE_ACTION_STRING="nativeAction";
        public static final String SUCCESS_PARAMETER="success";
        public static final String portName = "BT:";
        public static final String portSettings = "mini";
    
        @Override
        public PluginResult execute(String action, JSONArray data, String callbackId) {
    
             Log.d("HelloPlugin", "Hello, this is a native function called from PhoneGap/Cordova!");
    
             //only perform the action if it is the one that should be invoked
             if (NATIVE_ACTION_STRING.equals(action)) {
    
                 String resultType = null;
                 try {
                     resultType = data.getString(0);
                 }
                 catch (Exception ex) {
                     Log.d("HelloPlugin", ex.toString());
                 }
    
                 byte[] texttoprint = resultType.toString().getBytes();
    
                 if (resultType.equals(SUCCESS_PARAMETER)) {
    
                     StarIOPort port = null;
    
                     return new PluginResult(PluginResult.Status.OK, "Yay, Success!!!");
                 }
                 else {
                     return new PluginResult(PluginResult.Status.ERROR, "Oops, Error :(");
                 }
             }
    
             return null;
        }
    
    }
    

    没有任何问题。

    当我尝试将以下调用包含在打印机.jar方法

    中时
    port = StarIOPort.getPort(portName, portSettings, 10000, context);
    

    我收到错误:状态= 2消息=未找到类。

    我哪里错了????

0 个答案:

没有答案