概述
IPTV機(jī)頂盒開發(fā)有很多的坑,爬不完的坑鲜屏,當(dāng)然其他開發(fā)也是一樣……哈哈哈烹看。今天我來說一下IPTV-B/S
模式開發(fā)中調(diào)試的坑。如果你開發(fā)過機(jī)頂盒項(xiàng)目(以下都特指B/S
模式)[沒開發(fā)過的肯定也不會(huì)看這篇文章]洛史,那你肯定經(jīng)歷過這種時(shí)候……寫完一堆代碼惯殊,然后瀏覽器上初步看一遍,哇也殖,完美土思!趕緊上傳服務(wù)器,使用機(jī)頂盒跑一下毕源,免得代碼自動(dòng)消失了浪漠,哈哈哈。一頓 cd
ll
cp
rm -rf /
操作后霎褐,啟動(dòng)機(jī)頂盒址愿,咦~黑屏,肯定是緩存原因冻璃,代碼還未更新到响谓,肯定不是我代碼的錯(cuò)……等等再重啟下,還是黑屏省艳?娘纷??what跋炕?赖晶?難道真的代碼出錯(cuò)?辐烂?遏插?怎么辦?斷點(diǎn)調(diào)試下吧(這種方式心里想想就好了)機(jī)頂盒上根本打不開控制臺(tái)好吧>佬蕖8斐啊!此處建議盡早放棄扣草,不過為了工作了牛,畢竟工作使我快樂颜屠,還是不放棄吧……繼續(xù)爬坑。打不開控制臺(tái)鹰祸,無法調(diào)試甫窟,那就console.log唄,多加一些福荸,看看哪些打印了蕴坪,哪些沒打印唄,這不就一樣能定位嘛敬锐!但……無法打開控制臺(tái)!4粽啊台夺!淚崩……怎么辦,那就只能用最另一種宇宙最強(qiáng)的JS API
document.getElementById
我打印到頁面上總行吧痴脾,好吧颤介,遇到比較正常的問題的話,用這種方式也就完美解決了赞赖!哎滚朵,送了口氣……終于解決了!頁面總算是打開了前域,但是……居然焦點(diǎn)不能移動(dòng)……啊辕近,要崩潰,坑定代碼哪里又報(bào)錯(cuò)匿垄,機(jī)頂盒的瀏覽器真是小氣啊移宅,啥高級(jí)屬性都不能用,又怎么辦椿疗?
TVConsole
來了漏峰,來了,它來了届榄。TVConsole是一個(gè)js組件浅乔,將其引入頁面中,可以顯示出一個(gè)面板铝条,也就是一個(gè)簡易的瀏覽器控制臺(tái)靖苇,就像這樣。
這看起來是不是很像一個(gè)東西攻晒?對(duì)顾复,沒錯(cuò),就是VConsole騰訊開發(fā)的一款移動(dòng)端的控制臺(tái)調(diào)試器鲁捏,最初是用于微信公眾號(hào)芯砸、小程序開發(fā)這方便調(diào)試用萧芙,后來,當(dāng)程序員都發(fā)現(xiàn)了這個(gè)東西后假丧,You Know双揪,好東西總是會(huì)被用于很多地方,也就普及了包帚。我也就基于這套東西渔期,再包裝了一層,用于機(jī)頂盒渴邦。
為什么再封裝疯趟?
其實(shí)不止是封裝,我還修改了一點(diǎn)源代碼谋梭,這也造成了源碼的污染信峻,不利于升級(jí)。未來準(zhǔn)備采用插件開發(fā)瓮床,不污染源碼盹舞,也可以隨著主框架的升級(jí)而伴隨升級(jí)。
回歸主題隘庄,為什么要封裝踢步?因?yàn)闄C(jī)頂盒開發(fā)不同于其他移動(dòng)端和PC,移動(dòng)端和PC都可以很容易觸發(fā) touch
click
等事件丑掺,但是機(jī)頂盒不吃你這套获印,所有操作都是 遙控器
,對(duì)吼鱼,就是這東西蓬豁!要想點(diǎn)擊,那就得重新監(jiān)聽 document.onkeydown
事件菇肃,然后觸發(fā)邏輯地粪。所以咯,再封裝了一層琐谤。
不講代碼蟆技,只講使用
這里不講代碼,但是你可以在這里TVConsole https://gitee.com/underline/TVConsole
查看代碼岸芳伞质礼!已經(jīng)上傳碼云。
使用:
- 下載
dist/tvconsole.min.js
- 引入到頁面
<script src="path/to/tvconsole.min.js"></script>
建議在head中引入 - 初始化一個(gè)實(shí)例
var tvconsole = new TVConsole()
- 此后可以觸發(fā)
tvconsole.show()
顯示界面 - 更多方法织阳,請(qǐng)看這里https://gitee.com/underline/TVConsole
進(jìn)入界面后都是一些按鍵操作眶蕉,按鍵后面板右上角會(huì)顯示你的按鍵,目前支持的按鍵有(并持續(xù)更新):
-
1
: 顯示Log
面板 -
11
: 顯示Log
下的All
面板唧躲,12
: 顯示Log
下的Log
面板造挽,以此類推 -
2
: 顯示System
面板 -
21
:顯示System
下的All
面板碱璃,以此類推 -
#
: 隱藏控制臺(tái)面板 -
*
:展開控制臺(tái)打印的Object
信息 -
**
:收起控制臺(tái)打印的Object
信息
暫時(shí)完了……在開發(fā)的路上越走越遠(yuǎn)