こんにちは私はモバイルアプリにいます。
phonegap(html5、JQuery、JS)でアプリを開発しましたが、BTプリンターに印刷するためのプラグインを開発したいと思います。
プリンターの製造元のSDKをダウンロードし、次の方法で適切な.jarファイルをプロジェクトにインポートしました。
このライブラリをプロジェクトに含めるには:
適切なライブラリファイルをSDKパッケージからプロジェクトエクスプローラーにドラッグします
プロジェクトフォルダを右クリックして、[プロパティ]を選択します
「Javaビルドパス」をクリックします
[ライブラリ]と[JARの追加]ボタンをクリックします
メインコードの上部に次を追加します。
インポートcom.starmicronics.stario.StarIOPort;
インポートcom.starmicronics.stario.StarIOPortException;
インポートcom.starmicronics.stario.StarPrinterStatus;
これで、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。
私はどこが間違っていますか????