这是 my Code here
在我的 Activity 中,我使用 Epson SDK 将数据从 WebView 打印到 android Activity ..
所以在 Web-veiw Onclick 上它会启动 Printer Activity 并且它会打印
我想做的是.....从 Web View 单击它会打开打印机 Activity ,以便它应该打印并退出...
所以我在这里创建了一个 Web View ......在 JS 的帮助下它仍然打开我的 Activity 表单 Web View (onclick)直到现在它很好......但我试图添加打印并退出......onclick但它不起作用...因为我需要选择语言和打印机型号...
如何在shared_DiscoveryActivity我正在添加打印机并将其保存在共享首选项中......所以它不会再询问......它的工作
我的问题是
1) 打印机要求型号和语言所以有人可以建议我如何手动提供它们而不是选择 这是旧代码
mPrinter = new Printer(((SpnModelsItem) mSpnSeries.getSelectedItem()).getModelConstant(),
((SpnModelsItem) mSpnLang.getSelectedItem()).getModelConstant(),
mContext);
为此,我在 System.out.print
中获得了这些值
System.out:----- spnSeries -----android.widget.Spinner{24440249 VFED..C. ........ 0,444-466,516 #7f0e007b app:id/spnModel}
System.out: ----- lang -----android.widget.Spinner{1a6c617c VFED..C. ........ 0,604-366,676 #7f0e007d app:id/spnLang}
System.out: ----- printer -----com.epson.epos2.printer.Printer@b8250d6
2) 这是主要问题 在这里,我在共享 Pinter 中定义打印机,因此在我的代码中,它将检查该地址上的打印机
但是这里如果找不到打印机我该怎么办...
因为在 webview 上打印机将在后端启动..但是应用程序仍然在 webview 中所以它崩溃了......请给我建议
更新 1
我在这里添加了一个新文件 Test_P
这将在后台打印而不向用户显示任何信息 OnClick 它将在此处开始打印不可用/已配置请重试...但未显示文本或警报。
如果打印机离线或未找到,我会收到此错误
FATAL EXCEPTION: main
Process: com.epson.epos2_printer, PID: 15489
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getString(int)' on a null object reference
at com.epson.epos2_printer.ShowMsg.showException(ShowMsg.java:16)
at com.epson.epos2_printer.Test_P.connectPrinter(Test_P.java:173)
at com.epson.epos2_printer.Test_P.printData(Test_P.java:249)
at com.epson.epos2_printer.Test_P.runPrintReceiptSequence(Test_P.java:295)
at com.epson.epos2_printer.Test_P.access$200(Test_P.java:33)
at com.epson.epos2_printer.Test_P$2.run(Test_P.java:128)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5408)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
实际上,如果打印机不可用,它应该转到配置打印机,然后再次打印 ,,,但我试图制作一条消息,但它崩溃了,请帮助我,谢谢....
最佳答案
检查一次[Epson ePOS SDK for Android 用户手册][1]
需要下载没有显示选项
之后去
- 打印机选择(类初始化) 初始化打印机类并选择要控制的打印机。
你会看到这个...
Printer printer = null;
try {
printer = new Printer(Printer.TM_T88, Printer.MODEL_ANK, this);
}
catch (Epos2Exception e) {
//Displays error messages
}
在你的代码中添加这个
mPrinter = new Printer(Printer.TM_T88, Printer.MODEL_ANK, this);
这里我给了 TM_T88 它支持大多数打印机型号...如果您的打印机型号是特定的然后给它...手动或保持上面的代码
这适用于所有 EPSON 热敏打印机..
关于javascript - 点击 Android EPSON 热敏打印来自 WebView 的数据?如果找不到打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558367/