公司項(xiàng)目的關(guān)系,最近開始研究React Native羡儿,由于空鼠操作是公司智能電視除五向鍵操作之外的一大特色继效,所以,如果采用RN開發(fā)項(xiàng)目豫尽,空鼠肯定是要實(shí)現(xiàn)的。
在網(wǎng)上找了很多資料顷帖,最終發(fā)現(xiàn)目前React Native還不支持空鼠美旧。。贬墩。
最終決定基于React Native與Android事件傳遞的方式實(shí)現(xiàn)空鼠事件傳遞榴嗅,廢話不多說,直接上關(guān)鍵代碼陶舞。
在Activity中發(fā)射空鼠的事件到RN中:
事件的key定為“HoverEvent”嗽测,坐標(biāo)值:x,y
在RN中訂閱該事件:
解析msg,然后處理相關(guān)邏輯:
這樣就簡(jiǎn)單實(shí)現(xiàn)了Hover事件的傳遞唠粥,親測(cè)效率基本滿足需求疏魏。
其實(shí),原理就是使用了RN與Native之間的通信機(jī)制晤愧,當(dāng)然實(shí)現(xiàn)方式應(yīng)該還有很多大莫,在此就沒有再進(jìn)行深入研究了。
RN中使用“nativeEvent"處理Touch官份,在網(wǎng)上看了一些介紹的資料只厘,又對(duì)比了一下git-hub上代碼,發(fā)現(xiàn)差異還是有些大舅巷,后續(xù)如有空閑再做研究羔味。
出現(xiàn)的坑:
1. 在使用“RR”重新刷新頁面之后,事件傳遞就斷開了(先記錄一下悄谐,后續(xù)研究)