TVConsole在IPTV機頂盒端開發的應用

概述

IPTV機頂盒開發有很多的坑,爬不完的坑,當然其他開發也是一樣……哈哈哈。今天我來說一下IPTV-B/S模式開發中調試的坑。如果你開發過機頂盒項目(以下都特指B/S模式)[沒開發過的肯定也不會看這篇文章],那你肯定經歷過這種時候……寫完一堆代碼,然後瀏覽器上初步看一遍,哇,完美!趕緊上傳服務器,使用機頂盒跑一下,免得代碼自動消失了,哈哈哈。一頓 cd ll cp rm -rf / 操作後,啓動機頂盒,咦~黑屏,肯定是緩存原因,代碼還未更新到,肯定不是我代碼的錯……等等再重啓下,還是黑屏???what??難道真的代碼出錯???怎麼辦?斷點調試下吧(這種方式心裏想想就好了)機頂盒上根本打不開控制檯好吧!!!此處建議儘早放棄,不過爲了工作,畢竟工作使我快樂,還是不放棄吧……繼續爬坑。打不開控制檯,無法調試,那就console.log唄,多加一些,看看哪些打印了,哪些沒打印唄,這不就一樣能定位嘛!但……無法打開控制檯!!!淚崩……怎麼辦,那就只能用最另一種宇宙最強的JS API document.getElementById 我打印到頁面上總行吧,好吧,遇到比較正常的問題的話,用這種方式也就完美解決了!哎,送了口氣……終於解決了!頁面總算是打開了,但是……居然焦點不能移動……啊,要崩潰,坑定代碼哪裏又報錯,機頂盒的瀏覽器真是小氣啊,啥高級屬性都不能用,又怎麼辦?

TVConsole

來了,來了,它來了。TVConsole是一個js組件,將其引入頁面中,可以顯示出一個面板,也就是一個簡易的瀏覽器控制檯,就像這樣。


這看起來是不是很像一個東西?對,沒錯,就是VConsole騰訊開發的一款移動端的控制檯調試器,最初是用於微信公衆號、小程序開發這方便調試用,後來,當程序員都發現了這個東西后,You Know,好東西總是會被用於很多地方,也就普及了。我也就基於這套東西,再包裝了一層,用於機頂盒。

爲什麼再封裝?

其實不止是封裝,我還修改了一點源代碼,這也造成了源碼的污染,不利於升級。未來準備採用插件開發,不污染源碼,也可以隨着主框架的升級而伴隨升級。
迴歸主題,爲什麼要封裝?因爲機頂盒開發不同於其他移動端和PC,移動端和PC都可以很容易觸發 touch click等事件,但是機頂盒不喫你這套,所有操作都是 遙控器,對,就是這東西!要想點擊,那就得重新監聽 document.onkeydown 事件,然後觸發邏輯。所以咯,再封裝了一層。

不講代碼,只講使用

這裏不講代碼,但是你可以在這裏TVConsole https://gitee.com/underline/TVConsole
查看代碼啊!已經上傳碼雲。
使用:

  • 下載 dist/tvconsole.min.js
  • 引入到頁面 <script src="path/to/tvconsole.min.js"></script>建議在head中引入
  • 初始化一個實例 var tvconsole = new TVConsole()
  • 此後可以觸發 tvconsole.show() 顯示界面
  • 更多方法,請看這裏https://gitee.com/underline/TVConsole

進入界面後都是一些按鍵操作,按鍵後面板右上角會顯示你的按鍵,目前支持的按鍵有(並持續更新):

  • 1: 顯示Log面板
  • 11: 顯示Log下的All面板,12: 顯示Log下的Log面板,以此類推
  • 2: 顯示System面板
  • 21 :顯示System下的All面板,以此類推
  • #: 隱藏控制檯面板
  • *:展開控制檯打印的Object信息
  • **:收起控制檯打印的Object信息

暫時完了……在開發的路上越走越遠

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章