React Native Socket 连接打印机推送指令
发布时间:2020-12-15 06:31:14 所属栏目:百科 来源:网络整理
导读:序 公司因为业务需要,开发安卓扫描枪打印快递单之类的,踩了一天的坑,终于在队友帮助下搞定 原理很简单,利用打印机的socket通信 话不多说,直接撸代码 因为js不支持Socket通信,所以需要自己编写原生去实现 @ReactMethod public void print(String ip,Int
序 @ReactMethod public void print(String ip,Integer port,String msg,Promise promise) { try{ Socket socket = new Socket(ip,port); if (socket.isConnected() ) { InputStream inputStream = socket.getInputStream(); OutputStream os = socket.getOutputStream(); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os)); bw.write(msg); bw.flush(); promise.resolve("success"); } else { promise.reject("连接打印机失败"); } }catch (Exception ex){ promise.reject(ex.fillInStackTrace()); } } 上面是一个原生方法,怎么写原生我就不说了,百度下就知道 import com.facebook.react.bridge.Promise; 好吧,还是手动引入了(勿喷,本人之前没写过原生,总有第一次嘛,?) import { NativeModules } from 'react-native' NativeModules.PrintExtension.print( printAddr.split(':')[0],printAddr.split(':')[1]*1,'^XA^FO100,75^BY3^B3N,N,100,Y,N^FD123ABC^XZ').then((c) => { console.log(c) if (c!=="success") { Modal.alert('打印失败',c,[ { text: '确定'},]) } },(c)=>{ console.log(c) }) 记得之前看过某个人写的文章说到,你写RN,就得有写原生的准备,嗯,现在也是深表同意 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |