# uni-tv
**Repository Path**: lixinjava/uni-tv
## Basic Information
- **Project Name**: uni-tv
- **Description**: No description available
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 10
- **Forks**: 6
- **Created**: 2021-10-28
- **Last Updated**: 2025-11-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Uniapp-TV
#### 介绍
使用uni-app 实现TV遥控器焦点控制

**按键监听实现原理:**
参照:https://ext.dcloud.net.cn/plugin?id=2290
核心按键监听代码:
```
```
### 组件使用说明
**unitv-page** 代表一页,所有焦点控制内容都需要在它内部。
例如:
```
{{a}}
```
参数说明:
| 参数名称 | 是否必须 | 参数说明 |
| -------- | -------- | ----------------------- |
| id | 是 | 全局唯一ID |
| show | 否 | 页面是否显示 默认 false |
| @back | 否 | 可用于监听返回事件 |
**unitv-zone** 代表一块区域,相当于将所有焦点进行分组,方便控制区域之间切换
例如:
```
{{a}}
```
参数说明:
| 参数名称 | 是否必须 | 参数说明 |
| -------- | -------- | ------------------------------------------------ |
| id | 是 | 页面内唯一ID |
| autoFous | 否 | 是否是默认选中区域 默认否 |
| up | 否 | 区域边界 按"上"键切换到的区域 |
| down | 否 | 区域边界 按"下"键切换到的区域 |
| left | 否 | 区域边界 按"左"键切换到的区域 |
| right | 否 | 区域边界 按"右"键切换到的区域 |
| item | 否 | 区域内默认选中的子项 默认0 第一个 |
| row | 否 | 总行数,区域内总的有多少行 默认1行 支持动态计算 |
| column | 是 | 总列数,区域内有多少列 |
| values | 否 | 区域的子项数组 |
| count | 否 | 区域的子项总数 count,values 应当二选一 |
**unitv-item** 代表一块区域内的一个子项
例如:
```
{{a}}
```
参数说明:
| 参数名称 | 是否必须 | 参数说明 |
| ----------- | -------- | ------------------------------------------------------------ |
| item | 是 | 当前子项下标 按键发生后会动态计算区域内下一个焦点的下标位置,匹配则选中 |
| hoverClass | 否 | 滑过时的样式 |
| selectClass | 否 | 确认选中时的样式 通常当前区域已经切换到其他区域时 保留当前位置高亮 |
| @hover | 否 | 滑过时触发事件 |
| @click | 否 | 按下确认键触发事件 |
**unitv-scroll** 代表一块区域内子项超过屏幕宽度 当下一焦点不可见时,需要滚动至可见范围
**unitv-video**封装video组件并用于监听按键控制暂停,播放,快进,快退
注意事项:
1、页面返回时需恢复当前页显示,可调用unitv-page的showPage方法。
```
this.$refs.unitvPage.showPage()
```
2、同一个page中支持多个 unitv-page 可加快页面显示速度,但需要自行维护和控制页面显示。