在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:Uniapp-TV开源软件地址:https://gitee.com/javaleon/uniapp-tv开源软件介绍:Uniapp-TV介绍使用uni-app 实现TV遥控器焦点控制 按键监听实现原理: 参照:https://ext.dcloud.net.cn/plugin?id=2290 核心按键监听代码: <template><view @click="whole.onClick" id="onClick"></view></template><script module="whole" lang="renderjs"> let code; let KeyName = { 19: 'KeyUp', 38: 'KeyUp', //Keyboard 20: 'KeyDown', 40: 'KeyDown', //Keyboard 21: 'KeyLeft', 37: 'KeyLeft', //Keyboard 22: 'KeyRight', 39: 'KeyRight', //Keyboard 23: 'KeyEnter', 13: 'KeyEnter', //Keyboard 4: 'KeyBack', 18: 'KeyBack', //Keyboard Alt键 27: 'KeyBack', //Keyboard ESC 24: 'KeyBack', //Keyboard ESC 66: 'KeyEnter', 111: 'KeyBack' }; export default { mounted() { //全局监听按键输入 window.document.onkeydown = function(evt) { evt = evt || window.event; var KeyCode = evt.which || evt.keyCode; //document.getElementById("onClick").click(); code = KeyName[KeyCode]; if(code!='KeyBack'){ evt.preventDefault(); } if(code!=undefined){ document.getElementById("onClick").click(); } } }, methods: { onClick(event, ownerInstance) { // 调用 service 层的方法 ownerInstance.callMethod('keyCodeClick', code); } } }</script> 组件使用说明unitv-page 代表一页,所有焦点控制内容都需要在它内部。 例如: <unitv-page id="indexPage" :show="true" ref="unitvPage" @back="pageBack"> <view> <unitv-zone id="zone1" class="zone1" :autoFous="true" down="zone2" :item="3" :values="item1" :column="item1.length"> <unitv-scroll> <unitv-item v-for="(a,index) in item1" :item="index" :key="index" class="item" @hover="hoverItem">{{a}}</unitv-item> </unitv-scroll> </unitv-zone> </view></unitv-page> 参数说明:
unitv-zone 代表一块区域,相当于将所有焦点进行分组,方便控制区域之间切换 例如: <unitv-zone id="zone1" class="zone1" :autoFous="true" down="zone2" :item="3" :values="item1" :column="item1.length"> <unitv-scroll> <unitv-item v-for="(a,index) in item1" :item="index" :key="index" class="item" @hover="hoverItem">{{a}}</unitv-item> </unitv-scroll></unitv-zone> 参数说明:
unitv-item 代表一块区域内的一个子项 例如: <unitv-item v-for="(a,index) in item1" :item="index" :key="index" class="item" @hover="hoverItem">{{a}}</unitv-item> 参数说明:
unitv-scroll 代表一块区域内子项超过屏幕宽度 当下一焦点不可见时,需要滚动至可见范围 unitv-video封装video组件并用于监听按键控制暂停,播放,快进,快退 注意事项: 1、页面返回时需恢复当前页显示,可调用unitv-page的showPage方法。 this.$refs.unitvPage.showPage() 2、同一个page中支持多个 unitv-page 可加快页面显示速度,但需要自行维护和控制页面显示。 |
请发表评论