公司项目的关系,最近开始研究React Native,由于空鼠操作是公司智能电视除五向键操作之外的一大特色,所以,如果采用RN开发项目,空鼠肯定是要实现的。
在网上找了很多资料,最终发现目前React Native还不支持空鼠。。。
最终决定基于React Native与Android事件传递的方式实现空鼠事件传递,废话不多说,直接上关键代码。
在Activity中发射空鼠的事件到RN中:
事件的key定为“HoverEvent”,坐标值:x,y
在RN中订阅该事件:
解析msg,然后处理相关逻辑:
这样就简单实现了Hover事件的传递,亲测效率基本满足需求。
其实,原理就是使用了RN与Native之间的通信机制,当然实现方式应该还有很多,在此就没有再进行深入研究了。
RN中使用“nativeEvent"处理Touch,在网上看了一些介绍的资料,又对比了一下git-hub上代码,发现差异还是有些大,后续如有空闲再做研究。
出现的坑:
1. 在使用“RR”重新刷新页面之后,事件传递就断开了(先记录一下,后续研究)