四川長虹網絡科技有限責任公司 曾祥根
近年來IPTV機頂盒獲得大規(guī)模普及。通常不同運營商的不同市場會引入不同的IPTV平臺和機頂盒廠家的產品,需要機頂盒終端去適配不同市場的不同平臺,由于IPTV平臺上的網頁代碼編寫不規(guī)范,存在各種語法、變量定義、JS函數(shù)定義以及和瀏覽器版本兼容等問題,常常需要終端去適配前端頁面的錯誤和兼容性,傳統(tǒng)做法都是在機頂盒端做針對性修改,同時需要升級機頂盒軟件,由于頁面也會不定期的更新,導致經常需要升級機頂盒軟件,增加維護工作量和導致用戶體驗不友好。為了提高機頂盒維護方便性和友好性,需要有一種IPTV網頁動態(tài)適配技術,實現(xiàn)一套軟件自動適應所有市場,不同平臺的方法,同時達到不需要升級軟件就可適配新市場,新平臺,新頁面的需求,提高適配效率,維護方便性,軟件復用性。
(1)針對每個市場的不同軟件版本定義不同的適配解析文件;
(2)程序啟動會自動從服務器端同步對應市場版本的適配解析文件;
(3)修改標準瀏覽器內核,滿足各個運營商IPTV頁面技術要求;
(4)修改瀏覽器內核,使得瀏覽器內核支持解析適配文件內容,動態(tài)修改頁面內容,達到自動適應IPTV網頁錯誤,兼容性等問題。
(1)頁面適配文件的版本定義;
(2)頁面適配文件定義;
(3)定義和實現(xiàn)頁面適配文件更新接口;
(4)頁面適配文件下載更新;
(5)瀏覽器解析配置文件,替換或者動態(tài)修改js,css,html文件內容,呈現(xiàn)頁面最終顯示內容。
版本文件名命名格式規(guī)定如下:
xxxx.xx.version
第一個xxxx為市場編號,例如四川電信為0001,四川移動為1001等
第二個xx為平臺變化,例如中興平臺,00,華為2.0為01等
例如:四川電信中興平臺文件名為0001.00.version
版本配置內容格式定義如下:
xx.xx
第一個xx為主版本號
第二個xx為次版本號
例如:版本內容為01.01
頁面適配文件名命名格式規(guī)定如下:
xxxx.xx.config
第一個xx為市場編號,例如四川電信為0001,四川移動為1001等
第二個xx為平臺變化,例如中興平臺為0,華為2.0為1等
例如:四川電信中興平臺文件名為0001.00.config
頁面適配配置內容格式定義如下:
例如,替換指定頁面的指定內容;
需要替換字符串內容,替換后字符串內容
例如:
其他規(guī)則采用類似的json定義
(1)客戶端和服務端之間采用http post機制通訊;
(2)通信接口定義如下:
POST /api/configver
輸入:
(1)機頂盒開機發(fā)送configver請求;
(2)服務器處理客戶端請求,獲取對應的版本信息,配置文件地址;
(3)服務器返回對應的版本信息和url;
(4)客戶端判斷版本,如果版本相同,不更新;
(5)如果版本不一致,下載配置文件同時更新到本地。
客戶端頁面適配文件下載更新流程圖(詳見圖1所示)。
圖1 客戶端頁面適配文件下載更新流程圖
(1)在瀏覽器載入html內存內容前,解析配置文件,查找并且替換符合條件的內容,或者增加新的頁面內容,更新后的html內存載入內核解析。
(2)在瀏覽器載入css內存內容前,解析配置文件,查找并且替換符合條件的內容,或者增加新的頁面內容,更新后的css內存載入內核解析。
(3)在瀏覽器載入js內存內容前,解析配置文件,查找并且替換符合條件的內容,或者增加新的頁面內容,更新后的js內存載入內核解析。
(4)瀏覽器解析動態(tài)更新后的頁面內容,并且顯示頁面內容。