更新记录

2.0(2021-12-08)

优化业务修复bug

1.0.6(2021-11-25)

双屏异显异触-主副屏相互通讯 安卓收银机 pos机


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


🚀 新版 UTS 插件已发布!

ly028-Screen 多屏异显异触 · 主副屏相互通讯(UTS 版)

本页面是旧版 原生插件(LY028-NativeSdk)的说明文档。

新版 UTS 插件 已全面升级,推荐所有新项目使用:

👉 https://ext.dcloud.net.cn/plugin?id=28155

📱 扫码体验新版

新版 UTS 插件 旧版原生插件

扫码体验新版 | ly028-Screen | LY028-NativeSdk |

✨ 新版 vs 旧版 对比

对比项 旧版(原生插件) 新版(UTS 插件)
插件类型 原生 NativePlugin UTS 插件
调用方式 uni.requireNativePlugin('LY028-NativeSdk') import { ... } from '@/uni_modules/ly028-Screen'
屏幕支持 ❌ 仅单副屏 ✅ 多块副屏同时显示不同内容
热插拔 ❌ 不支持 ✅ DisplayManager 监听,自动恢复
断线重连 ❌ 不支持 ✅ 屏幕重连自动恢复上次页面
列出屏幕 ❌ 不支持 listScreens() 检测所有可用屏幕
消息路由 仅主屏 ↔ 副屏 ✅ 主屏→指定副屏、主屏→所有副屏、副屏↔副屏
权限申请 需自行处理 ✅ 自动检测 + 跳转设置 + 授权后自动继续操作
开源性 闭源 ✅ 开源 UTS + Kotlin
云打包 需云端插件配置 ✅ 直接 UTS 编译,零配置
副屏接收数据 plus.globalEvent.addEventListener onReceiveData(fn) 推荐,也兼容旧方式

🎯 新版核心优势

  • 多屏异显异触:支持多块副屏同时显示不同内容,每块屏幕独立触控
  • 屏幕热插拔:HDMI 拔插自动响应,重连自动恢复
  • 更简单的 API:ES Module 导入,TypeScript 类型提示
  • 更稳定的通讯:主屏 ↔ 副屏 ↔ 副屏 之间自由路由
  • 自动权限管理:悬浮窗权限自动申请,授权后自动继续
  • UTS 开源:代码可见,可自行定制


以下为旧版插件原始说明文档


双屏异显异触-主副屏相互通讯 安卓收银机 POS 机

插件基本信息

  • 插件ID: LY028-NativeSdk
  • 作者: MattLiu(已实名认证)
  • 分类: App原生语言插件

平台兼容性

平台 支持情况
Android 适用版本区间:4.4 - 11.0
Android CPU类型 armeabi-v7a:支持,arm64-v8a:支持,x86:支持
iOS ×(不支持)

更新记录

2.0(2021-12-08)

  • "优化业务修复bug"

1.0.6(2021-11-25)

  • "双屏异显异触-主副屏相互通讯 安卓收银机 pos机"

项目说明

插件适用于Android双屏异显、异触场景。主屏和副屏之间可以实现数据双向同步以及发送。

副屏基于Android原生WebView实现,数据相互传输无需使用socket,即可实现数据交互。

主要用于双屏收银、双屏POS机等场景,控制主屏和副屏显示视图异同。


打包说明

若遇到如下打包错误:

uses-sdk:minSdkVersion 19 cannot be smaller than version 20 declared in library

需要在 manifest.json 中添加配置:

"android" : {
  "minSdkVersion" : 20
}

接口概述

功能 方法 参数 必填
打开副屏 openSecondScreen json对象{}
主屏给副屏发送消息 sendDataToSecondScreen json对象数据{}
主屏关闭副屏 closeSecondScreen
主屏接收副屏数据 [见主屏项目说明4说明]
副屏接收主屏消息 [见副屏项目1.1说明]
副屏给主屏发送消息 [见副屏项目1.2说明] window.lyjsdk.sendToFirstScreen

主屏项目说明

1. 引入模块

var LySDKModule = uni.requireNativePlugin('LY028-NativeSdk');

2. 打开副屏

LySDKModule.openSecondScreen(
    {
        url: url, // 副屏url
        aaa: 1
    },
    ret => {
        uni.showToast({ icon: 'none', title: ret });
    }
);

副屏URL说明:

  • 可以为网络地址,如 http://www.baidu.com
  • 也可以为项目本地网页,文件放至 static 目录或 /hybrid/html/ 目录下

本地网页URL示例:

plus.io.convertLocalFileSystemURL('/hybrid/html/index.html');
plus.io.convertLocalFileSystemURL('/static/index.html');

3. 主屏发送数据给副屏

LySDKModule.sendDataToSecondScreen({ a: '1111' }, ret => {
    uni.showToast({ icon: 'none', title: ret });
});

4. 接收副屏发来的数据 (receiveData)

plus.globalEvent.addEventListener('receiveData', function (e) {
    uni.showToast({
        icon: 'none',
        title: 'receiveData收到副屏发来的消息:' + e
    });
});

5. 关闭副屏

LySDKModule.closeSecondScreen();

副屏项目说明

1. 副屏为网页项目

1.1 接收主屏消息

若副屏项目用Vue编写,则挂载在window下的 receiveData 函数:

window.receiveData = function (result) {
    uni.showToast({ icon: 'none', title: result });
};

1.2 发送消息给主屏

window.lyjsdk.sendToFirstScreen('我是副屏发来的消息');

2. 副屏可为vue-cli或其他网页项目

若副屏项目使用uniapp发布的网页出现白屏,需在 manifest.json 中h5节点配置:

"h5" : {
  "title" : "test",
  "router" : {
    "mode" : "hash",
    "base" : "./"
  },
  "publicPath": "./",
  "domain" : "http://www.baidu.cn"
}

隐私、权限声明

1. 需要申请的系统权限列表

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.TYPE_APPLICATION_OVERLAY"/>
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>

2. 数据采集说明

"插件不采集任何数据"

3. 广告声明

"本插件不包含任何广告"


原生插件通用使用流程

  1. 购买插件,选择该插件绑定的项目
  2. 在HBuilderX中,于manifest的app原生插件配置中勾选模块
  3. 根据文档开发代码,引用插件并调用功能
  4. 打包自定义基座,选择插件,进行log输出测试
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。


作者的其他插件

插件名称 下载量
商米打印机手持PDA打印插件 下载920
双屏异显异触-主副屏相互通讯(本插件) 下载575
文件选择器 Android iOS 鸿蒙 下载33
UTS防截屏防录屏 Android iOS 鸿蒙 下载19
UTS电话通话短信监听插件(Android) 下载18

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="android.permission.TYPE_APPLICATION_OVERLAY"/> <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

本插件不包含任何广告