MCPcopy Index your code
hub / github.com/deemojiang/UniApp-Android-Plugins

github.com/deemojiang/UniApp-Android-Plugins @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
430 symbols 817 edges 33 files 139 documented · 32%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

项目说明 - 本项目是uniApp插件工程集合 - UniPlugin-Android Android插件工程,插件源码。包括陀螺仪、扫码枪、标签打印机、身份证识别、售货机等插件 - uniplugin_Demo uniapp demo示例 - 参考资料:https://nativesupport.dcloud.net.cn/NativePlugin/course/android

项目结构

uni-app_plug-in
├─uniplugin_Demo   uniApp插件实例工程
│    └─nativeplugins  插件存放路径
│        ├─Huiy-Card     身份证插件
│        ├─Huiy-Office   Office文件预览插件
│        ├─Huiy-Printer  打印机插件
│        ├─Huiy-Sale     售货机插件
│        ├─Huiy-Scanner  扫码枪插件
│        └─Huiy-Sensor   陀螺仪插件
│ 
├─UniPlugin-Android     Android插件工程,插件源码 
│    ├─app            App程序,可运行
│    ├─huiy_card      身份证组件module
│    ├─huiy_office    Office文件预览组件module
│    ├─huiy_printer   打印机组件module
│    ├─huiy_sale      售货机组件module
│    ├─huiy_scaner    扫码枪组件module
│    └─huiy_sensor    陀螺仪组件module
│   

陀螺仪插件使用说明 - 将uniplugin_Demo\nativeplugins\Huiy-Sensor文件夹copy到 自己工程的 nativeplugins 下面 - 在manifest.json中,选择APP原生插件配置,引入插件 - 在项目中使用如下方法,引入module

        var testModule = uni.requireNativePlugin("Huiy-SensorModule")
  • 使用registerSensorAFunc方法,注册陀螺仪监听,通过ret回调陀螺仪数据,并实时刷新
        testModule.registerSensorAFunc(
            (ret) => {
                this.degree = ret.degree;
                this.x = ret.x;
                this.y = ret.y;
                this.z = ret.z;

        })

返回参数包括 degree,x,y,z

degree 当前方向角度,取值范围0~360, 0-北 90-东 180-南 270-西

x,y,z 陀螺仪传感器返回的 x,y,z三轴的原始数据,取值范围为 -PI~PI

  • 使用unRegisterSensorFunc方法,取消陀螺仪监听注册
        var ret = testModule.unRegisterSensorFunc(); `
  • 使用getSensorInfoFunc方法,获取陀螺仪当前数据,返回结果和registerSensorAFunc相同
        var ret = testModule.getSensorInfoFunc();`
  • 使用toDegree180Func方法,将陀螺仪原始坐标转换成角度,入参为value,通过ret.degree返回数据 取值范围 -180~180
        var ret = testModule.toDegree180Func({
                'value': -1
            });
        modal.toast({
            message: "toDegree360:"+ret.degree,
            duration: 1.5
        });
  • 使用toDegree360Func方法,将陀螺仪原始坐标转换成角度,入参为value,通过ret.degree返回数据 取值范围 0~360
        var ret = testModule.toDegree360Func({
                'value': -1
            });
        modal.toast({
            message: "toDegree360:"+ret.degree,
            duration: 1.5
        });

扫码枪插件使用说明 - 本插件适配ZEBRA 斑马品牌扫码枪,只支持USB连接,适配具体型号为ZEBRA DS2208 条码扫描器 - 将uniplugin_Demo\nativeplugins\Huiy-Scanner文件夹copy到 自己工程的 nativeplugins 下面 - 在manifest.json中,选择APP原生插件配置,引入插件 - 在项目中使用如下方法,引入module

var testModule = uni.requireNativePlugin("Huiy-ScannerModule")
  • 在项目中使用如下方法,注册一个通知回调,用于接收扫码枪返回的消息
        var globalEvent = uni.requireNativePlugin('globalEvent');
            globalEvent.addEventListener('scannerEvent', function(e) {
                console.log("scannerEvent:" + that);
                that.i = e.barcode;
                modal.toast({
                    message: "globalEvent收到:" + e.scannerId + " " + e.type + " " + e.msg + " " + e.barcode + " " + e.barType,
                    duration: 1.5
                });
            });

其中 scannerId扫码枪id,type 消息类型,msg 消息内容,barcode 扫码内容,barType二维码类型

  • 使用initScannerAFunc方法,初始化组件
       testModule.initScannerAFunc(
            (ret) => {
                modal.toast({
                    message: "init:" + JSON.stringify(ret),
                    duration: 1.5
                });
        });`
  • 使用connectScannerAFunc方法,连接扫码枪
       testModule.connectScannerAFunc(
            (ret) => {
                modal.toast({
                    message: "init:" + JSON.stringify(ret),
                    duration: 1.5
                });
        });`

此时使用扫码枪扫描二维码或条形码,扫描结果会通过上面注册的回调返回数据

  • 使用disconnectScannerAFunc方法,断开连接
       testModule.disconnectScannerAFunc(
            (ret) => {
                modal.toast({
                    message: "init:" + JSON.stringify(ret),
                    duration: 1.5
                });
        });`

条码打印机插件使用说明 - 本插件适配佳博 Gainscha品牌条码打印机,只支持USB连接,适配具体型号为佳博 GP-1324D 热敏条码打印机 - 将uniplugin_Demo\nativeplugins\Huiy-Printer文件夹copy到 自己工程的 nativeplugins 下面 - 在manifest.json中,选择APP原生插件配置,引入插件 - 在项目中使用如下方法,引入module

var testModule = uni.requireNativePlugin("Huiy-PrinterModule")
  • 在项目中使用如下方法,注册一个通知回调,用于接收打印机是否连接成功的消息
        globalEvent.addEventListener('myEvent', function(e) {
                console.log("globalEvent:" + that);
                that.i = e.degree;
                modal.toast({
                    message: "myEvent收到:" + e.type + " " + e.msg,
                    duration: 1.5
                });
        });

其中 type 消息类型,msg 消息内容

  • 使用getUsbDevListFunc方法,获取设备列表
       var ret = testModule.getUsbDevListFunc();
  • 使用connectUsbDev方法,连接设备,其中name为设备列表中获取的设备名称
       var ret = testModule.connectUsbDevFunc({
            'name': this.conDev
        });
  • 使用printerLabel方法,打印标签
       var ret = testModule.printerLabel(json);

其中json为json报文,用于描述打印标签的内容,具体举例如下:

       {
            "direction": 0,
            "gap": 20,
            "height": 30,
            "mirror": 0,
            "width": 40,
            "x": 0,
            "y": 0,
            "printInfoList": [{
                "cellWidth": 5,
                "font": "TSS24.BF2",
                "height": 100,
                "readable": 0,
                "rotation": 0,
                "scaleX": 2,
                "scaleY": 2,
                "text": "悠悠奶茶",
                "type": 1,
                "x": 60,
                "y": 10
            }, {
                "cellWidth": 3,
                "height": 100,
                "level": "L",
                "readable": 0,
                "rotation": 0,
                "scaleX": 0,
                "scaleY": 0,
                "text": "barcode1234567",
                "type": 2,
                "x": 200,
                "y": 75
            }, {
                "barType": "128",
                "cellWidth": 5,
                "height": 50,
                "readable": 1,
                "rotation": 0,
                "scaleX": 0,
                "scaleY": 0,
                "text": "7654321",
                "type": 3,
                "x": 30,
                "y": 160
            }]
        }

最上方direction、gap、width、height、mirror、x、y 用于描述标签信息,具体参数说明如下:

    public int width = 40;      // 标签尺寸(宽)
    public int height = 30;     // 标签尺寸(高)
    public int gap = 20;        // 标签之间的间距

    public int x;               // 打印起始坐标(x)
    public int y;               // 打印起始坐标(y)
    public int direction;       // 打印方向类型:正向打印(0),反方向打印,从下往上(1);
    public int mirror;          // 是否镜像类型:正常(0), 开启镜像(1);

printInfoList中的内容用于描述打印内容,具体参数说明如下:

    // 公共参数
    public int type;       // 打印内容的类型: 打印文字(1),打印二维码(2),打印条形码(3)
    public int x;          // 打印起始坐标x
    public int y;          // 打印起始坐标y
    public int rotation;   // 旋转角度:0 90 150 270
    public String text;    // 打印文字的内容

    // 打印文字相关
    public String font;     // 字体类型:1-10、简体中文("TSS24.BF2"),繁体中文("TST24.BF2"), 韩语("K");
    public int scaleX;      // x轴放大系数: 1-10
    public int scaleY;      // y轴放大系数: 1-10

    // 打印二维码相关
    public String level;    // 纠错级别:L M Q H
    public int cellWidth = 5;

    // 打印条形码相关
    public int readable;     //是否打印可识别字符  DISABLE(0),EANBEL(1);
    public int height = 100; // 条形码高度
    public String barType;   // 条形码编码类型: CODE128 ..
  • 具体参数说明也可参考:\TscCommand说明_Android.pdf

Office文件预览插件使用说明 - 本插件使用TBS腾讯浏览服务实现office文档预览功能,使用时需要联网,会自动下载安装腾讯浏览器内核。具体参考:https://x5.tencent.com/ - 将uniplugin_Demo\nativeplugins\Huiy-Office文件夹copy到 自己工程的 nativeplugins 下面 - 在manifest.json中,选择APP原生插件配置,引入插件 - 在项目中使用如下方法,使用控件

<officeFrame ref="officeView" officeUrl="/storage/emulated/0/excel001.xlsx" style="width:1260;height:700" @onInit="onInit" @click="officeClick"></officeFrame>

可以通过width、height 属性控制控件大小

  • 在项目中使用如下方法,获取腾讯浏览器内核加载情况
        onInit(e) {
            this.name = "onInit --> "+e.detail.type + " "+ e.detail.msg+ " "+ e.detail.progress+ " "+ e.detail.isSuccess;       
        },

其中

type 回调类型 1.内核下载中 2. 内核下载完成 3.内核安装完成 4.控件初始化完成(需根据isSuccess判断是否成功),

msg 当前状态描述

progress 下载进度

isSuccess 控件是否加载成功

  • 使用loadFile方法,加载Android本地文件
        officeClick(e) {
            this.name = "loadFile"
            this.$refs.officeView.loadFile("/sdcard/ppt001.pptx");
        },

Extension points exported contracts — how you extend this code

IScannerAppEngineDevListDelegate (Interface)
Interface to notify about the change in scanner list due to (apperance/disappearance) of scanners [1 implementers]
UniPlugin-Android/huiy_scanner/src/main/java/io/huiy/deemo/scanner/helpers/ScannerAppEngine.java
IScannerAppEngineDevConnectionsDelegate (Interface)
Interface to notify about the various states of a scanner [1 implementers]
UniPlugin-Android/huiy_scanner/src/main/java/io/huiy/deemo/scanner/helpers/ScannerAppEngine.java
IScannerAppEngineDevEventsDelegate (Interface)
通知事件的接口,例如条形码接收等 [1 implementers]
UniPlugin-Android/huiy_scanner/src/main/java/io/huiy/deemo/scanner/helpers/ScannerAppEngine.java
ScannerAppEngine (Interface)
Interface to be implemented by classes which wish to communicate with the SDK
UniPlugin-Android/huiy_scanner/src/main/java/io/huiy/deemo/scanner/helpers/ScannerAppEngine.java

Core symbols most depended-on inside this repo

getDeviceConnFactoryManagers
called by 23
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/DeviceConnFactoryManager.java
setText
called by 22
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/entity/PrintInfo.java
show
called by 17
UniPlugin-Android/uniplugin_richalert/src/main/java/uni/dcloud/io/uniplugin_richalert/RichAlert.java
toString
called by 16
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/entity/Label.java
initJSONObject
called by 14
UniPlugin-Android/huiy_sale/src/main/java/io/huiy/deemo/sale/SaleModule.java
dip2px
called by 8
UniPlugin-Android/uniplugin_richalert/src/main/java/uni/dcloud/io/uniplugin_richalert/RichAlert.java
sendStateBroadcast
called by 8
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/DeviceConnFactoryManager.java
getApp
called by 7
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/utils/Utils.java

Shape

Method 386
Class 34
Interface 4
Enum 3
Function 3

Languages

Java99%
TypeScript1%

Modules by API surface

UniPlugin-Android/huiy_scanner/src/main/java/io/huiy/deemo/scanner/helpers/ScannerAppEngine.java42 symbols
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/DeviceConnFactoryManager.java40 symbols
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/entity/PrintInfo.java39 symbols
UniPlugin-Android/huiy_scanner/src/main/java/io/huiy/deemo/scanner/ScannerModule.java38 symbols
UniPlugin-Android/huiy_sale/src/main/java/io/huiy/deemo/sale/SaleModule.java33 symbols
UniPlugin-Android/uniplugin_richalert/src/main/java/uni/dcloud/io/uniplugin_richalert/RichAlert.java21 symbols
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/entity/Label.java21 symbols
UniPlugin-Android/huiy_scanner/src/main/java/io/huiy/deemo/scanner/helpers/AvailableScanner.java20 symbols
UniPlugin-Android/huiy_printer/src/main/java/io/huiy/deemo/printer/PrinterModule.java19 symbols
UniPlugin-Android/huiy_office/src/main/java/io/huiy/deemo/office/OfficeFrame.java18 symbols
UniPlugin-Android/huiy_card/src/main/java/io/huiy/deemo/card/NativePageActivity.java18 symbols
UniPlugin-Android/huiy_card/src/main/java/io/huiy/deemo/card/CardModule.java13 symbols

For agents

$ claude mcp add UniApp-Android-Plugins \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact