react-native-sunmi-inner-printer

    0.1.6 • Public • Published

    react-native-sunmi-inner-printer

    GitHub license npm version

    http://docs.sunmi.com/htmls/index.html?lang=zh##V1文档资源 根据商米V1文档开发打印接口 (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_ACITON 打印头过热异常
    FIRMWARE_UPDATING_ACITON 打印机固件开始升级

    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>
            )
        }
    }

    Install

    npm i react-native-sunmi-inner-printer

    DownloadsWeekly Downloads

    22

    Version

    0.1.6

    License

    MIT

    Unpacked Size

    34.2 MB

    Total Files

    1538

    Last publish

    Collaborators

    • januslo