| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | import React from 'react';
import { NativeModules, AsyncStorage, Alert } from 'react-native';
let RNXprinter = NativeModules.RNXprinter;
let RNXNetprinter = NativeModules.RNXNetprinter;
module.exports = {
  initialize: async () => {
    try{
      let netAddress = await AsyncStorage.getItem('@ReactNativeXprinter:default_net_printer');
      if(netAddress && netAddress != ""){
        console.log('Get default printer:' + address);
        await RNXNetprinter.connectPrinter(address);
      }
      let address = await AsyncStorage.getItem('@ReactNativeXprinter:default_printer');
      let printerList = await RNXprinter.getDeviceList();
      if(address && address != "" && printerList.find((printer) => { return printer.address == address})){
        console.log('Get default printer:' + address);
        await RNXprinter.selectDevice(address);
      }
    }
    catch(err){
      console.log('No default printer');
    }
  },
  getDeviceList: RNXprinter.getDeviceList,
  selectDevice: async (address) => {
    await RNXprinter.selectDevice(address);
    await AsyncStorage.setItem('@ReactNativeXprinter:default_printer', address);
  },
  connectPrinter: async (address) => {
    await RNXNetprinter.connectPrinter(address);
    await AsyncStorage.setItem('@ReactNativeXprinter:default_net_printer', address);
  },
  pickPrinter: async () => {
    try{
      let printerList = await RNXprinter.getDeviceList();
      Alert.alert(
        'Please pick one printer',
        'If your printer not in this list, please go to bluetooth setting panel connect your device first',
        printerList.map((printer) => {
          return {
            text: `${printer.name}(${printer.address})`,
            onPress: async () => {
              await RNXprinter.selectDevice(printer.address);
              await AsyncStorage.setItem('@ReactNativeXprinter:default_printer', printer.address);
            }
          };
        })
      );
    }
    catch(error){
      console.log(error);
    }
  },
  pushText: RNXprinter.pushText,
  pushFlashImage: RNXprinter.pushFlashImage,
  pushCutPaper: RNXprinter.pushCutPaper,
  netPushText: RNXNetprinter.pushText,
  netPushImage: RNXNetprinter.printImage,
  netPushCutPaper: RNXNetprinter.pushCutPaper,
  print: RNXprinter.print,
  printDemoPage: RNXprinter.printDemoPage,
};
 |