1

こんにちは私はモバイルアプリにいます。

phonegap(html5、JQuery、JS)でアプリを開発しましたが、BTプリンターに印刷するためのプラグインを開発したいと思います。

プリンターの製造元のSDKをダウンロードし、次の方法で適切な.jarファイルをプロジェクトにインポートしました。

このライブラリをプロジェクトに含めるには:

  1. 適切なライブラリファイルをSDKパッケージからプロジェクトエクスプローラーにドラッグします

  2. プロジェクトフォルダを右クリックして、[プロパティ]を選択します

  3. 「Javaビルドパス」をクリックします

  4. [ライブラリ]と[JARの追加]ボタンをクリックします

  5. メインコードの上部に次を追加します。

    インポートcom.starmicronics.stario.StarIOPort;

    インポートcom.starmicronics.stario.StarIOPortException;

    インポートcom.starmicronics.stario.StarPrinterStatus;

  6. これで、StarIOのすべてのメソッドにアクセスできます。

次のプラグインを作成します

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;
    }

}

これは問題なく動作しています。

以下のprinter.jarメソッドの呼び出しを含めようとすると

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

エラーが発生します:Status = 2 Message = Classnotfound。

私はどこが間違っていますか????

4

0 に答える 0