资讯专栏INFORMATION COLUMN

React Native Socket 连接打印机推送指令

3fuyu / 3170人阅读

摘要:序公司因为业务需要,开发安卓扫描枪打印快递单之类的,踩了一天的坑,终于在队友帮助下搞定原理很简单,利用打印机的通信话不多说,直接撸代码因为不支持通信,所以需要自己编写原生去实现连接打印机失败上面是一个原生方法,怎么写原生我就不说了,百度下就


公司因为业务需要,开发安卓扫描枪打印快递单之类的,踩了一天的坑,终于在队友帮助下搞定
原理很简单,利用打印机的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类!!
啊,尴尬,后来看了下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,就得有写原生的准备,嗯,现在也是深表同意

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93721.html

相关文章

  • React系列——websocket群聊系统在react的实现

    摘要:前奏这篇文章仅对不熟悉在中使用的人以及入门者有帮助。基本介绍想要实现一种实时的双向通信聊天系统,你可能会想到轮询长或短,但你最想要的还是的实现。客户端的实现端的实现,才是我们应该关注的重点。 前奏 这篇文章仅对不熟悉在react中使用socket.io的人、以及websocket入门者有帮助。 下面这个动态图展示的聊天系统是用react+express+websocket搭建的,很模糊...

    Acceml 评论0 收藏0
  • 利用 socket.io 实现消息实时推送

    摘要:为了达到这种双向的实时消息传递,很明显地考虑用来实现。注意这个文件并不能用在实际的项目中,只是用来显示消息推送的效果而已。参考资料本文在我博客上的原地址利用实现消息实时推送 项目背景介绍 最近在写的项目中存在着社交模块,需要实现这样的一个功能:当发生了用户被点赞、评论、关注等操作时,需要由服务器向用户实时地推送一条消息。最终完成的项目地址为:socket-message-push,这里...

    RobinQu 评论0 收藏0

发表评论

0条评论

3fuyu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<