我在 phonegap(html5、JQuery、JS)中开发了一个应用程序,我想开发一个插件来打印到 BT 打印机。
我下载了打印机制造商的 SDK,并使用我在项目中需要的所有方法将适当的 .jar 文件导入到我的项目中。
我按照互联网教程创建了以下插件,以便从 JS 调用打印机制造商 SDK 的 JAVA 方法。
JS
var msgbox = function() {
};
msgbox.prototype.show = function(str, success, fail) {
PhoneGap.exec(success, fail, "msgbox", "show1", [str]);
};
navigator.msgbox = new msgbox();
JAVA
public class msgbox extends Plugin {
private static final String SHOW = "show";
private static final String SHOW1 = "show1";
private static final Context context = null;
private static final int MSG_INDEX = 0;
private String msg;
@Override
public PluginResult execute(String arg0, final JSONArray arg1, String arg2) {
if ( arg0.equals(SHOW1) )
{
StarIOPort port = null;
byte[] texttoprint = new byte[]{0x1b, 0x40, 0x1b,0x74,0x0D,(byte) 0x91,(byte) 0x92,(byte) 0x93,(byte) 0x94,(byte) 0x95,(byte) 0x96,(byte) 0x97,(byte) 0x98,(byte) 0x99,0x0A,0x0A,0x0A,0x0A,0x0A};
try
{
port = StarIOPort.getPort("BT:", "mini", 10000);
port.writePort(texttoprint, 0, texttoprint.length);
}
catch (StarIOPortException e)
{
Builder dialog = new AlertDialog.Builder(ctx);
dialog.setNegativeButton("Ok", null);
AlertDialog alert = dialog.create();
alert.setTitle("Failure");
alert.setMessage("Failed to connect to printer");
alert.show();
}
finally
{
if(port != null)
{
try
{
StarIOPort.releasePort(port);
} catch (StarIOPortException e) {}
}
}
}
return new PluginResult(Status.OK);
}
}
当我运行项目时,我没有收到任何错误,我没有收到任何警报,也没有打印到打印机。
我错过了什么?