@hoangnh0099/react-native-sunmi-printer 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.md +300 -0
- package/SunmiPrinter.podspec +20 -0
- package/android/build.gradle +68 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/sunmiprinter/SunmiPrinterModule.kt +526 -0
- package/android/src/main/java/com/sunmiprinter/SunmiPrinterPackage.kt +31 -0
- package/ios/SunmiPrinter.h +5 -0
- package/ios/SunmiPrinter.mm +21 -0
- package/lib/module/NativeSunmiPrinter.js +5 -0
- package/lib/module/NativeSunmiPrinter.js.map +1 -0
- package/lib/module/index.js +147 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeSunmiPrinter.d.ts +45 -0
- package/lib/typescript/src/NativeSunmiPrinter.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +40 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +171 -0
- package/src/NativeSunmiPrinter.ts +92 -0
- package/src/index.tsx +205 -0
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
package com.sunmiprinter
|
|
2
|
+
|
|
3
|
+
import android.graphics.BitmapFactory
|
|
4
|
+
import android.util.Base64
|
|
5
|
+
import com.facebook.react.bridge.Promise
|
|
6
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
7
|
+
import com.facebook.react.bridge.ReadableArray
|
|
8
|
+
import com.sunmi.peripheral.printer.InnerLcdCallback
|
|
9
|
+
import com.sunmi.peripheral.printer.InnerPrinterCallback
|
|
10
|
+
import com.sunmi.peripheral.printer.InnerPrinterManager
|
|
11
|
+
import com.sunmi.peripheral.printer.InnerResultCallback
|
|
12
|
+
import com.sunmi.peripheral.printer.SunmiPrinterService
|
|
13
|
+
|
|
14
|
+
class SunmiPrinterModule(reactContext: ReactApplicationContext) :
|
|
15
|
+
NativeSunmiPrinterSpec(reactContext) {
|
|
16
|
+
|
|
17
|
+
private var printerService: SunmiPrinterService? = null
|
|
18
|
+
|
|
19
|
+
private val printerCallback = object : InnerPrinterCallback() {
|
|
20
|
+
override fun onConnected(service: SunmiPrinterService) {
|
|
21
|
+
printerService = service
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
override fun onDisconnected() {
|
|
25
|
+
printerService = null
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
init {
|
|
30
|
+
InnerPrinterManager.getInstance().bindService(reactContext, printerCallback)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
private fun getService(promise: Promise): SunmiPrinterService? {
|
|
34
|
+
return printerService ?: run {
|
|
35
|
+
promise.reject("SERVICE_NOT_CONNECTED", "Printer service is not connected")
|
|
36
|
+
null
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
private fun resultCallback(promise: Promise) = object : InnerResultCallback() {
|
|
41
|
+
override fun onRunResult(isSuccess: Boolean) {
|
|
42
|
+
if (isSuccess) promise.resolve(null)
|
|
43
|
+
else promise.reject("PRINTER_ERROR", "Operation failed")
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override fun onReturnString(result: String?) {}
|
|
47
|
+
|
|
48
|
+
override fun onRaiseException(code: Int, msg: String?) {
|
|
49
|
+
promise.reject("PRINTER_EXCEPTION", msg ?: "Printer exception (code: $code)")
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
override fun onPrintResult(code: Int, msg: String?) {}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
private fun stringResultCallback(promise: Promise) = object : InnerResultCallback() {
|
|
56
|
+
override fun onRunResult(isSuccess: Boolean) {}
|
|
57
|
+
|
|
58
|
+
override fun onReturnString(result: String?) {
|
|
59
|
+
promise.resolve(result)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
override fun onRaiseException(code: Int, msg: String?) {
|
|
63
|
+
promise.reject("PRINTER_EXCEPTION", msg ?: "Printer exception (code: $code)")
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
override fun onPrintResult(code: Int, msg: String?) {}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
private fun lcdCallback(promise: Promise) = object : InnerLcdCallback() {
|
|
70
|
+
override fun onRunResult(show: Boolean) {
|
|
71
|
+
promise.resolve(null)
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private fun decodeBitmap(base64: String, promise: Promise): android.graphics.Bitmap? {
|
|
76
|
+
val bytes = Base64.decode(base64, Base64.DEFAULT)
|
|
77
|
+
return BitmapFactory.decodeByteArray(bytes, 0, bytes.size) ?: run {
|
|
78
|
+
promise.reject("DECODE_ERROR", "Failed to decode base64 image")
|
|
79
|
+
null
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// region Printer Info
|
|
84
|
+
|
|
85
|
+
override fun getPrinterSerialNo(promise: Promise) {
|
|
86
|
+
val service = getService(promise) ?: return
|
|
87
|
+
try {
|
|
88
|
+
promise.resolve(service.printerSerialNo)
|
|
89
|
+
} catch (e: Exception) {
|
|
90
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
override fun getPrinterVersion(promise: Promise) {
|
|
95
|
+
val service = getService(promise) ?: return
|
|
96
|
+
try {
|
|
97
|
+
promise.resolve(service.printerVersion)
|
|
98
|
+
} catch (e: Exception) {
|
|
99
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
override fun getPrinterModal(promise: Promise) {
|
|
104
|
+
val service = getService(promise) ?: return
|
|
105
|
+
try {
|
|
106
|
+
promise.resolve(service.printerModal)
|
|
107
|
+
} catch (e: Exception) {
|
|
108
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
override fun getPrinterPaper(promise: Promise) {
|
|
113
|
+
val service = getService(promise) ?: return
|
|
114
|
+
try {
|
|
115
|
+
promise.resolve(service.printerPaper)
|
|
116
|
+
} catch (e: Exception) {
|
|
117
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
override fun getPrinterMode(promise: Promise) {
|
|
122
|
+
val service = getService(promise) ?: return
|
|
123
|
+
try {
|
|
124
|
+
promise.resolve(service.printerMode)
|
|
125
|
+
} catch (e: Exception) {
|
|
126
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
override fun getServiceVersion(promise: Promise) {
|
|
131
|
+
val service = getService(promise) ?: return
|
|
132
|
+
try {
|
|
133
|
+
promise.resolve(service.serviceVersion)
|
|
134
|
+
} catch (e: Exception) {
|
|
135
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
override fun getFirmwareStatus(promise: Promise) {
|
|
140
|
+
val service = getService(promise) ?: return
|
|
141
|
+
try {
|
|
142
|
+
promise.resolve(service.firmwareStatus)
|
|
143
|
+
} catch (e: Exception) {
|
|
144
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
override fun updatePrinterState(promise: Promise) {
|
|
149
|
+
val service = getService(promise) ?: return
|
|
150
|
+
try {
|
|
151
|
+
promise.resolve(service.updatePrinterState())
|
|
152
|
+
} catch (e: Exception) {
|
|
153
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
override fun getPrintedLength(promise: Promise) {
|
|
158
|
+
val service = getService(promise) ?: return
|
|
159
|
+
try {
|
|
160
|
+
service.getPrintedLength(stringResultCallback(promise))
|
|
161
|
+
} catch (e: Exception) {
|
|
162
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
override fun getPrinterFactory(promise: Promise) {
|
|
167
|
+
val service = getService(promise) ?: return
|
|
168
|
+
try {
|
|
169
|
+
service.getPrinterFactory(stringResultCallback(promise))
|
|
170
|
+
} catch (e: Exception) {
|
|
171
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// endregion
|
|
176
|
+
|
|
177
|
+
// region Initialization
|
|
178
|
+
|
|
179
|
+
override fun printerInit(promise: Promise) {
|
|
180
|
+
val service = getService(promise) ?: return
|
|
181
|
+
try {
|
|
182
|
+
service.printerInit(resultCallback(promise))
|
|
183
|
+
} catch (e: Exception) {
|
|
184
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
override fun printerSelfChecking(promise: Promise) {
|
|
189
|
+
val service = getService(promise) ?: return
|
|
190
|
+
try {
|
|
191
|
+
service.printerSelfChecking(resultCallback(promise))
|
|
192
|
+
} catch (e: Exception) {
|
|
193
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// endregion
|
|
198
|
+
|
|
199
|
+
// region Formatting
|
|
200
|
+
|
|
201
|
+
override fun setAlignment(alignment: Double, promise: Promise) {
|
|
202
|
+
val service = getService(promise) ?: return
|
|
203
|
+
try {
|
|
204
|
+
service.setAlignment(alignment.toInt(), resultCallback(promise))
|
|
205
|
+
} catch (e: Exception) {
|
|
206
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
override fun setFontName(typeface: String, promise: Promise) {
|
|
211
|
+
val service = getService(promise) ?: return
|
|
212
|
+
try {
|
|
213
|
+
service.setFontName(typeface, resultCallback(promise))
|
|
214
|
+
} catch (e: Exception) {
|
|
215
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
override fun setFontSize(fontsize: Double, promise: Promise) {
|
|
220
|
+
val service = getService(promise) ?: return
|
|
221
|
+
try {
|
|
222
|
+
service.setFontSize(fontsize.toFloat(), resultCallback(promise))
|
|
223
|
+
} catch (e: Exception) {
|
|
224
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
override fun setPrinterStyle(key: Double, value: Double, promise: Promise) {
|
|
229
|
+
val service = getService(promise) ?: return
|
|
230
|
+
try {
|
|
231
|
+
service.setPrinterStyle(key.toInt(), value.toInt())
|
|
232
|
+
promise.resolve(null)
|
|
233
|
+
} catch (e: Exception) {
|
|
234
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// endregion
|
|
239
|
+
|
|
240
|
+
// region Text
|
|
241
|
+
|
|
242
|
+
override fun printText(text: String, promise: Promise) {
|
|
243
|
+
val service = getService(promise) ?: return
|
|
244
|
+
try {
|
|
245
|
+
service.printText(text, resultCallback(promise))
|
|
246
|
+
} catch (e: Exception) {
|
|
247
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
override fun printTextWithFont(text: String, typeface: String, fontsize: Double, promise: Promise) {
|
|
252
|
+
val service = getService(promise) ?: return
|
|
253
|
+
try {
|
|
254
|
+
service.printTextWithFont(text, typeface, fontsize.toFloat(), resultCallback(promise))
|
|
255
|
+
} catch (e: Exception) {
|
|
256
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
override fun printOriginalText(text: String, promise: Promise) {
|
|
261
|
+
val service = getService(promise) ?: return
|
|
262
|
+
try {
|
|
263
|
+
service.printOriginalText(text, resultCallback(promise))
|
|
264
|
+
} catch (e: Exception) {
|
|
265
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// endregion
|
|
270
|
+
|
|
271
|
+
// region Image
|
|
272
|
+
|
|
273
|
+
override fun printImage(base64: String, promise: Promise) {
|
|
274
|
+
val service = getService(promise) ?: return
|
|
275
|
+
try {
|
|
276
|
+
val bitmap = decodeBitmap(base64, promise) ?: return
|
|
277
|
+
service.printBitmap(bitmap, resultCallback(promise))
|
|
278
|
+
} catch (e: Exception) {
|
|
279
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
override fun printBitmapCustom(base64: String, type: Double, promise: Promise) {
|
|
284
|
+
val service = getService(promise) ?: return
|
|
285
|
+
try {
|
|
286
|
+
val bitmap = decodeBitmap(base64, promise) ?: return
|
|
287
|
+
service.printBitmapCustom(bitmap, type.toInt(), resultCallback(promise))
|
|
288
|
+
} catch (e: Exception) {
|
|
289
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// endregion
|
|
294
|
+
|
|
295
|
+
// region Barcode
|
|
296
|
+
|
|
297
|
+
override fun printBarCode(
|
|
298
|
+
data: String,
|
|
299
|
+
symbology: Double,
|
|
300
|
+
height: Double,
|
|
301
|
+
width: Double,
|
|
302
|
+
textposition: Double,
|
|
303
|
+
promise: Promise
|
|
304
|
+
) {
|
|
305
|
+
val service = getService(promise) ?: return
|
|
306
|
+
try {
|
|
307
|
+
service.printBarCode(
|
|
308
|
+
data,
|
|
309
|
+
symbology.toInt(),
|
|
310
|
+
height.toInt(),
|
|
311
|
+
width.toInt(),
|
|
312
|
+
textposition.toInt(),
|
|
313
|
+
resultCallback(promise)
|
|
314
|
+
)
|
|
315
|
+
} catch (e: Exception) {
|
|
316
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
override fun printQRCode(data: String, modulesize: Double, errorlevel: Double, promise: Promise) {
|
|
321
|
+
val service = getService(promise) ?: return
|
|
322
|
+
try {
|
|
323
|
+
service.printQRCode(data, modulesize.toInt(), errorlevel.toInt(), resultCallback(promise))
|
|
324
|
+
} catch (e: Exception) {
|
|
325
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// endregion
|
|
330
|
+
|
|
331
|
+
// region Table
|
|
332
|
+
|
|
333
|
+
override fun printColumnsText(texts: ReadableArray, widths: ReadableArray, aligns: ReadableArray, promise: Promise) {
|
|
334
|
+
val service = getService(promise) ?: return
|
|
335
|
+
try {
|
|
336
|
+
val textsArr = Array(texts.size()) { texts.getString(it) }
|
|
337
|
+
val widthsArr = IntArray(widths.size()) { widths.getInt(it) }
|
|
338
|
+
val alignsArr = IntArray(aligns.size()) { aligns.getInt(it) }
|
|
339
|
+
service.printColumnsText(textsArr, widthsArr, alignsArr, resultCallback(promise))
|
|
340
|
+
} catch (e: Exception) {
|
|
341
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
override fun printColumnsString(texts: ReadableArray, widths: ReadableArray, aligns: ReadableArray, promise: Promise) {
|
|
346
|
+
val service = getService(promise) ?: return
|
|
347
|
+
try {
|
|
348
|
+
val textsArr = Array(texts.size()) { texts.getString(it) }
|
|
349
|
+
val widthsArr = IntArray(widths.size()) { widths.getInt(it) }
|
|
350
|
+
val alignsArr = IntArray(aligns.size()) { aligns.getInt(it) }
|
|
351
|
+
service.printColumnsString(textsArr, widthsArr, alignsArr, resultCallback(promise))
|
|
352
|
+
} catch (e: Exception) {
|
|
353
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
// endregion
|
|
358
|
+
|
|
359
|
+
// region Raw
|
|
360
|
+
|
|
361
|
+
override fun sendRAWData(data: ReadableArray, promise: Promise) {
|
|
362
|
+
val service = getService(promise) ?: return
|
|
363
|
+
try {
|
|
364
|
+
val bytes = ByteArray(data.size()) { data.getInt(it).toByte() }
|
|
365
|
+
service.sendRAWData(bytes, resultCallback(promise))
|
|
366
|
+
} catch (e: Exception) {
|
|
367
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
// endregion
|
|
372
|
+
|
|
373
|
+
// region Paper
|
|
374
|
+
|
|
375
|
+
override fun lineWrap(lines: Double, promise: Promise) {
|
|
376
|
+
val service = getService(promise) ?: return
|
|
377
|
+
try {
|
|
378
|
+
service.lineWrap(lines.toInt(), resultCallback(promise))
|
|
379
|
+
} catch (e: Exception) {
|
|
380
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
override fun cutPaper(promise: Promise) {
|
|
385
|
+
val service = getService(promise) ?: return
|
|
386
|
+
try {
|
|
387
|
+
service.cutPaper(resultCallback(promise))
|
|
388
|
+
} catch (e: Exception) {
|
|
389
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
override fun autoOutPaper(promise: Promise) {
|
|
394
|
+
val service = getService(promise) ?: return
|
|
395
|
+
try {
|
|
396
|
+
service.autoOutPaper(resultCallback(promise))
|
|
397
|
+
} catch (e: Exception) {
|
|
398
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
// endregion
|
|
403
|
+
|
|
404
|
+
// region Cash Drawer
|
|
405
|
+
|
|
406
|
+
override fun openDrawer(promise: Promise) {
|
|
407
|
+
val service = getService(promise) ?: return
|
|
408
|
+
try {
|
|
409
|
+
service.openDrawer(resultCallback(promise))
|
|
410
|
+
} catch (e: Exception) {
|
|
411
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// endregion
|
|
416
|
+
|
|
417
|
+
// region Label
|
|
418
|
+
|
|
419
|
+
override fun labelLocate(promise: Promise) {
|
|
420
|
+
val service = getService(promise) ?: return
|
|
421
|
+
try {
|
|
422
|
+
service.labelLocate()
|
|
423
|
+
promise.resolve(null)
|
|
424
|
+
} catch (e: Exception) {
|
|
425
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
override fun labelOutput(promise: Promise) {
|
|
430
|
+
val service = getService(promise) ?: return
|
|
431
|
+
try {
|
|
432
|
+
service.labelOutput()
|
|
433
|
+
promise.resolve(null)
|
|
434
|
+
} catch (e: Exception) {
|
|
435
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
// endregion
|
|
440
|
+
|
|
441
|
+
// region LCD
|
|
442
|
+
|
|
443
|
+
override fun sendLCDCommand(flag: Double, promise: Promise) {
|
|
444
|
+
val service = getService(promise) ?: return
|
|
445
|
+
try {
|
|
446
|
+
service.sendLCDCommand(flag.toInt())
|
|
447
|
+
promise.resolve(null)
|
|
448
|
+
} catch (e: Exception) {
|
|
449
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
override fun sendLCDFillString(text: String, size: Double, fill: Boolean, promise: Promise) {
|
|
454
|
+
val service = getService(promise) ?: return
|
|
455
|
+
try {
|
|
456
|
+
service.sendLCDFillString(text, size.toInt(), fill, lcdCallback(promise))
|
|
457
|
+
} catch (e: Exception) {
|
|
458
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
override fun sendLCDMultiString(texts: ReadableArray, align: ReadableArray, promise: Promise) {
|
|
463
|
+
val service = getService(promise) ?: return
|
|
464
|
+
try {
|
|
465
|
+
val textsArr = Array(texts.size()) { texts.getString(it) }
|
|
466
|
+
val alignArr = IntArray(align.size()) { align.getInt(it) }
|
|
467
|
+
service.sendLCDMultiString(textsArr, alignArr, lcdCallback(promise))
|
|
468
|
+
} catch (e: Exception) {
|
|
469
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
override fun sendLCDBitmap(base64: String, promise: Promise) {
|
|
474
|
+
val service = getService(promise) ?: return
|
|
475
|
+
try {
|
|
476
|
+
val bitmap = decodeBitmap(base64, promise) ?: return
|
|
477
|
+
service.sendLCDBitmap(bitmap, lcdCallback(promise))
|
|
478
|
+
} catch (e: Exception) {
|
|
479
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// endregion
|
|
484
|
+
|
|
485
|
+
// region Transaction
|
|
486
|
+
|
|
487
|
+
override fun enterPrinterBuffer(clean: Boolean, promise: Promise) {
|
|
488
|
+
val service = getService(promise) ?: return
|
|
489
|
+
try {
|
|
490
|
+
service.enterPrinterBuffer(clean)
|
|
491
|
+
promise.resolve(null)
|
|
492
|
+
} catch (e: Exception) {
|
|
493
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
override fun exitPrinterBuffer(commit: Boolean, promise: Promise) {
|
|
498
|
+
val service = getService(promise) ?: return
|
|
499
|
+
try {
|
|
500
|
+
service.exitPrinterBufferWithCallback(commit, resultCallback(promise))
|
|
501
|
+
} catch (e: Exception) {
|
|
502
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
override fun commitPrinterBuffer(promise: Promise) {
|
|
507
|
+
val service = getService(promise) ?: return
|
|
508
|
+
try {
|
|
509
|
+
service.commitPrinterBufferWithCallback(resultCallback(promise))
|
|
510
|
+
} catch (e: Exception) {
|
|
511
|
+
promise.reject("PRINTER_ERROR", e.message, e)
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
// endregion
|
|
516
|
+
|
|
517
|
+
override fun invalidate() {
|
|
518
|
+
super.invalidate()
|
|
519
|
+
InnerPrinterManager.getInstance().unBindService(reactApplicationContext, printerCallback)
|
|
520
|
+
printerService = null
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
companion object {
|
|
524
|
+
const val NAME = NativeSunmiPrinterSpec.NAME
|
|
525
|
+
}
|
|
526
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package com.sunmiprinter
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.BaseReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
8
|
+
import java.util.HashMap
|
|
9
|
+
|
|
10
|
+
class SunmiPrinterPackage : BaseReactPackage() {
|
|
11
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
12
|
+
return if (name == SunmiPrinterModule.NAME) {
|
|
13
|
+
SunmiPrinterModule(reactContext)
|
|
14
|
+
} else {
|
|
15
|
+
null
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun getReactModuleInfoProvider() = ReactModuleInfoProvider {
|
|
20
|
+
mapOf(
|
|
21
|
+
SunmiPrinterModule.NAME to ReactModuleInfo(
|
|
22
|
+
name = SunmiPrinterModule.NAME,
|
|
23
|
+
className = SunmiPrinterModule.NAME,
|
|
24
|
+
canOverrideExistingModule = false,
|
|
25
|
+
needsEagerInit = false,
|
|
26
|
+
isCxxModule = false,
|
|
27
|
+
isTurboModule = true
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#import "SunmiPrinter.h"
|
|
2
|
+
|
|
3
|
+
@implementation SunmiPrinter
|
|
4
|
+
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
5
|
+
NSNumber *result = @(a * b);
|
|
6
|
+
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
11
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
12
|
+
{
|
|
13
|
+
return std::make_shared<facebook::react::NativeSunmiPrinterSpecJSI>(params);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
+ (NSString *)moduleName
|
|
17
|
+
{
|
|
18
|
+
return @"SunmiPrinter";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeSunmiPrinter.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AA2FpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
|