摘要:序公司因為業務需要,開發安卓掃描槍打印快遞單之類的,踩了一天的坑,終于在隊友幫助下搞定原理很簡單,利用打印機的通信話不多說,直接擼代碼因為不支持通信,所以需要自己編寫原生去實現連接打印機失敗上面是一個原生方法,怎么寫原生我就不說了,百度下就
序
公司因為業務需要,開發安卓掃描槍打印快遞單之類的,踩了一天的坑,終于在隊友幫助下搞定
原理很簡單,利用打印機的socket通信
話不多說,直接擼代碼
因為js不支持Socket通信,所以需要自己編寫原生去實現
@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()); } }
上面是一個原生方法,怎么寫原生我就不說了,百度下就知道
開始的時候也遇到個小坑,VSCode的import java Class 是在糟糕,求看到人推薦個好用的插件,總之就是盡然不識別 promise類?。?br>啊,尷尬,后來看了下react-native-camera的源碼,看到的是加了
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,就得有寫原生的準備,嗯,現在也是深表同意
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93721.html
摘要:前奏這篇文章僅對不熟悉在中使用的人以及入門者有幫助。基本介紹想要實現一種實時的雙向通信聊天系統,你可能會想到輪詢長或短,但你最想要的還是的實現??蛻舳说膶崿F端的實現,才是我們應該關注的重點。 前奏 這篇文章僅對不熟悉在react中使用socket.io的人、以及websocket入門者有幫助。 下面這個動態圖展示的聊天系統是用react+express+websocket搭建的,很模糊...
摘要:為了達到這種雙向的實時消息傳遞,很明顯地考慮用來實現。注意這個文件并不能用在實際的項目中,只是用來顯示消息推送的效果而已。參考資料本文在我博客上的原地址利用實現消息實時推送 項目背景介紹 最近在寫的項目中存在著社交模塊,需要實現這樣的一個功能:當發生了用戶被點贊、評論、關注等操作時,需要由服務器向用戶實時地推送一條消息。最終完成的項目地址為:socket-message-push,這里...
閱讀 1002·2023-04-25 19:35
閱讀 2658·2021-11-22 09:34
閱讀 3690·2021-10-09 09:44
閱讀 1723·2021-09-22 15:25
閱讀 2939·2019-08-29 14:00
閱讀 3374·2019-08-29 11:01
閱讀 2598·2019-08-26 13:26
閱讀 1740·2019-08-23 18:08