更新记录
1.0.4(2026-05-19) 下载此版本
更新说明
1.0.3(2026-05-19) 下载此版本
更新说明文档
1.0.2(2026-05-19) 下载此版本
修改示例说明
查看更多平台兼容性
uni-app(4.85)
| Vue2 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | Android | Android插件版本 | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | √ | 1.0.0 | - | - | √ | 1.0.0 | - | 5.0 | 1.0.0 | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.85)
| Chrome | Safari | Android | Android插件版本 | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|
| - | - | 5.0 | 1.0.0 | - | - | - |
dual-screen
UTS插件 双屏管理插件,支持双屏设备的副屏显示、主副屏消息通信、显示器变化监听等功能。
⚠️ 若需要原生语言 aar 插件包,请留言。
常见使用场景:
- 会议演示:主屏显示控制界面,副屏显示演示内容
- 广告展示:主屏用于交互操作,副屏循环播放广告内容
- 多屏游戏:主屏显示游戏操作,副屏显示游戏地图或数据统计
- 零售展示:主屏用于商品选择,副屏展示商品详情或促销信息
- 医疗监护:主屏显示控制界面,副屏实时显示患者生命体征数据
功能特性
- 副屏显示:支持 URL、HTML 内容、本地资源文件三种模式
- 主屏 → 副屏消息通信
- 副屏 → 主屏消息通信
- 显示器变化监听(连接/断开/分辨率变化)
- 副屏加载完成回调
安装
下载导入项目即可
使用方法
引入插件
import * as dualScreen from "@/uni_modules/dual-screen";
初始化
onLoad(() => {
// 注册事件监听
dualScreen.on("onDisplayChange", handleDisplayChange);
dualScreen.on("onSecondaryScreenMessage", handleSecondaryScreenMessage);
dualScreen.on("onPrimaryScreenMessage", handlePrimaryScreenMessage);
dualScreen.on("onSecondaryScreenLoaded", handleSecondaryScreenLoaded);
});
onUnload(() => {
// 移除事件监听
dualScreen.off("onDisplayChange");
dualScreen.off("onSecondaryScreenMessage");
dualScreen.off("onPrimaryScreenMessage");
dualScreen.off("onSecondaryScreenLoaded");
});
事件说明
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| onDisplayChange | 显示器变化 | { event: "displayChange", displays: DisplayInfo[] } |
| onSecondaryScreenMessage | 收到副屏消息 | { message: string, source: "secondary" } |
| onPrimaryScreenMessage | 收到主屏消息 | { message: string, source: "secondary" } |
| onSecondaryScreenLoaded | 副屏加载完成 | { url: string, success: boolean } |
DisplayInfo 类型
| 属性 | 类型 | 说明 |
|---|---|---|
| displayId | number | 显示器 ID |
| name | string | 显示器名称 |
| isPrimary | boolean | 是否为主屏 |
| width | number | 显示器宽度(像素) |
| height | number | 显示器高度(像素) |
| refreshRate | number | 刷新率 |
显示副屏
// 方式一:加载网络 URL
const result1 = await dualScreen.showSecondaryScreen({
url: "https://example.com",
});
// 方式二:加载 HTML 内容
const result2 = await dualScreen.showSecondaryScreen({
html: "<html><body><h1>Hello</h1></body></html>",
});
// 方式三:加载本地资源文件
const result3 = await dualScreen.showSecondaryScreen({
asset: "hybrid/html/index.html",
});
发送消息到副屏
const result = await dualScreen.sendMessageToSecondary({
message: "Hello Secondary Screen",
});
if (result.code === "success") {
console.log("消息发送成功");
}
隐藏副屏
await dualScreen.hideSecondaryScreen();
获取显示器列表
const displays = dualScreen.getDisplays();
displays.forEach((display) => {
console.log(
`显示器: ${display.name}, ID: ${display.displayId}, 是否主屏: ${display.isPrimary}, 分辨率: ${display.width}x${display.height}`,
);
});
副屏页面与主屏通信
副屏 → 主屏:发送消息
// 副屏页面中
function sendToPrimary(message) {
if (window.uniWebView && window.uniWebView.replyMessage) {
window.uniWebView.replyMessage(
JSON.stringify({
message: message,
}),
);
}
}
副屏 → 主屏:接收消息
副屏页面需要定义全局函数 window.receiveMessageFromPrimary 来接收主屏发送的消息:
// 副屏页面中
window.receiveMessageFromPrimary = function (message) {
console.log("收到主屏消息:", message);
// 处理消息...
};
或者使用 window.dualScreen.onPrimaryMessage:
// 副屏页面中
window.dualScreen = window.dualScreen || {};
window.dualScreen.onPrimaryMessage = function (message) {
console.log("收到主屏消息:", message);
// 处理消息...
};
注意事项
- 仅支持 Android 平台
- 需要设备支持副屏显示(通过 HDMI、MiraCast 等连接外接显示器)
- 副屏页面需要在主屏页面初始化插件并注册事件监听后再打开
- 建议在
onLoad中注册事件,在onUnload中移除事件监听

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 377
赞赏 1
下载 11969815
赞赏 1914
赞赏
京公网安备:11010802035340号