Git Product home page Git Product logo

rn-sunmi-inner-printer's Introduction

rn-sunmi-inner-printer

GitHub license npm version

SHUUP README

Original repo: https://github.com/januslo/react-native-sunmi-inner-printer

This fork contains fixes from other developers who have updated the original repo further since it isn't updated anymore. The fixes are mainly React Native and gradle version updates.

ORIGINAL README

https://docs.sunmi.com/en/ (React native plugin Referring the sunmi V1 printer document and demos)

Caution: this is not the official project. I share it because I am working on this device but no any official support in react-native It's welcome to ask any question about the usage,problems or feature required, I will support ASAP.

Offical Demos plz refer: https://github.com/shangmisunmi/SunmiPrinterDemo

for scanner, refer this: https://github.com/januslo/react-native-sunmi-inner-scanner

Installation:

Step 1.

install with npm: Check in NPM

npm install react-native-sunmi-inner-printer --save

or you may need to install via the clone address directly:

npm install https://github.com/januslo/react-native-sunmi-inner-printer.git --save

Step 2:

Links this plugin to your project.

react-native link react-native-sunmi-inner-printer

or you may need to link manually

  • modify settings.gradle
include ':react-native-sunmi-inner-printer'
project(':react-native-sunmi-inner-printer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sunmi-inner-printer/android')
  • modify app/build.gradle,add dependenceie:
compile project(':react-native-sunmi-inner-printer')
  • adds package references to MainPackage.java
import com.sunmi.innerprinter.SunmiInnerPrinterPackage;
...

 @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
            new SunmiInnerPrinterPackage()
      );
    }

Step 3:

refer in the javascript:

import SunmiInnerPrinter from "react-native-sunmi-inner-printer";

Usage & Demo:

See examples folder of the source code that you can find a simple example of printing receipt. // TODO

API

Constants

Name Description
Constants 打印状态常量
hasPrinter boolean,是否有打印机
printerVersion 打印机固件版本
printerSerialNo 打印机序列号
printerModal 打印机型号

Printer Status

Name Description
OUT_OF_PAPER_ACTION 缺纸异常
ERROR_ACTION 打印错误
NORMAL_ACTION 可以打印
COVER_OPEN_ACTION 开盖子
COVER_ERROR_ACTION 关盖子异常
KNIFE_ERROR_1_ACTION 切刀异常 1-卡切刀
KNIFE_ERROR_2_ACTION 切刀异常 2-切刀修复
OVER_HEATING_ACTION 打印头过热异常
FIRMWARE_UPDATING_ACTION 打印机固件开始升级

Example

import React, { Component } from "react";
import { View, Text, DeviceEventEmitter } from "react-native";
import SunmiInnerPrinter from "react-native-sunmi-inner-printer";

class PrinterComponent extends Component {
  componentWillMount() {
    this._printerStatusListener = DeviceEventEmitter.addListener(
      "PrinterStatus",
      (action) => {
        switch (action) {
          case SunmiInnerPrinter.Constants.NORMAL_ACTION: // 可以打印
            // your code
            break;
          case SunmiInnerPrinter.Constants.OUT_OF_PAPER_ACTION: // 缺纸异常
            // your code
            break;
          case SunmiInnerPrinter.Constants.COVER_OPEN_ACTION: // 开盖子
            // your code
            break;
          default:
          // your code
        }
      }
    );
  }

  componentWillUnmount() {
    this._printerStatusListener.remove();
  }

  render() {
    return (
      <View>
        <Text>Hello World!</Text>
      </View>
    );
  }
}

rn-sunmi-inner-printer's People

Contributors

badasshenkka avatar brojakub avatar caiorios avatar jakubkarlicek avatar januslo avatar proutek avatar tulimaki avatar yotewach avatar zzetao avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.