华为HMS Core的扫码接口更适用于简单的个人使用。在商业环境,如货架、医用试管、图书馆书架等,常常遇到复杂的多码扫描需求,这时需要专业的扫码SDK。尽管当前市场上的主流商业SDK尚未支持鸿蒙HarmonyOS,但我们仍可以通过HTTP请求来调用扫码服务,满足在鸿蒙系统上的多码扫描需求。
准备工作
-
申请一个Dynamsoft Barcode Reader免费试用序列号。
-
安装Node.js依赖包。
npm install barcode4nodejs express body-parser
使用Node.js搭建扫码服务
启动一个Express服务,监听3000端口,代码如下:
const express = require('express');
const path = require('path');
const fs = require('fs');
const app = express();
const http = require('http');
const server = http.createServer(app);
const bodyParser = require('body-parser');
app.use(express.static('public'));
app.use('/node_modules', express.static(__dirname + '/node_modules'));
app.use(bodyParser.json({
limit: '50mb' }));
app.use(bodyParser.urlencoded({
limit: '50mb', extended: true }));
const port = process.env.PORT || 3000;
server.listen(port, '0.0.0.0', () => {
host = server.address().address;
console.log(`Server running at http://0.0.0.0:${
port}/`);
});
通过HTTP POST请求接收图片文件流:
app.post('/readbarcode', async (req, res) => {
const data = req.body;
let chunks = [];
req.on('data'