鍵值擴(kuò)展方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種鍵值擴(kuò)展方法,包括:瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義;其中,所述哈希映射表包括鍵值及其映射值;在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè);在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)。本發(fā)明還公開一種鍵值擴(kuò)展系統(tǒng)。本發(fā)明實(shí)現(xiàn)了無需修改瀏覽器的內(nèi)核配置,即可對(duì)嵌入式瀏覽器的鍵值進(jìn)行擴(kuò)展。
【專利說明】
鍵值擴(kuò)展方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及電視機(jī)技術(shù)領(lǐng)域,尤其涉及一種鍵值擴(kuò)展方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,嵌入式瀏覽器在電視機(jī)以及機(jī)頂盒上的應(yīng)用也越來越廣泛。然而,不同的網(wǎng)頁(yè)應(yīng)用在定義按鍵值時(shí)可能存在一些差異,導(dǎo)致瀏覽器為了兼容這些差異化的按鍵值,必須修改瀏覽器內(nèi)核配置中的鍵值定義。由此,不同的網(wǎng)頁(yè)應(yīng)用就會(huì)產(chǎn)生不同的瀏覽器庫(kù),使得同一個(gè)瀏覽器存在很多版本的瀏覽器庫(kù),不便于軟件的版本管理。
[0003]上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種鍵值擴(kuò)展方法及系統(tǒng),旨在無需修改瀏覽器的內(nèi)核配置的情況下實(shí)現(xiàn)對(duì)瀏覽器鍵值的擴(kuò)展。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提供一種鍵值擴(kuò)展方法,所述鍵值擴(kuò)展方法包括:
[0006]瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義;其中,所述哈希映射表包括鍵值及其映射值;
[0007]在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè);
[0008]在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)。
[0009]優(yōu)選地,所述根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)包括:
[0010]查詢所述哈希映射表中是否存在所述鍵值;
[0011 ]當(dāng)所述哈希映射表中存在所述鍵值時(shí),判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值;
[0012]當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)。
[0013]優(yōu)選地,所述根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)還包括:
[0014]當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述鍵值的默認(rèn)映射值返回給所述網(wǎng)頁(yè)。
[0015]優(yōu)選地,所述根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè)包括:
[0016]判斷存儲(chǔ)的各個(gè)鍵值定義是否存在于所述網(wǎng)頁(yè)已有的鍵值定義中;
[0017]將存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,注入到所述網(wǎng)頁(yè)。
[0018]優(yōu)選地,所述根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義包括:
[0019]將加載的用于初始化哈希映射表的第一配置文件中的鍵值及其映射值保存到所述哈希映射表中;
[0020]將加載的用于定義瀏覽器的各個(gè)鍵值的鍵值定義的第二配置文件保存到瀏覽器的內(nèi)存中。
[0021 ]為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種鍵值擴(kuò)展系統(tǒng),所述鍵值擴(kuò)展系統(tǒng)包括:
[0022]初始模塊,用于瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義;其中,所述哈希映射表包括鍵值及其映射值;
[0023]注入模塊,用于在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè);
[0024]處理模塊,用于在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)。
[0025]優(yōu)選地,所述處理模塊包括:
[0026]查詢單元,用于查詢所述哈希映射表中是否存在所述鍵值;
[0027]第一判斷單元,用于當(dāng)所述哈希映射表中存在所述鍵值時(shí),判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值;
[0028]第一處理單元,用于當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)。
[0029]優(yōu)選地,所述處理模塊還包括:
[0030]第二處理單元,用于當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述鍵值的默認(rèn)映射值返回給所述網(wǎng)頁(yè)。
[0031]優(yōu)選地,所述注入模塊包括:
[0032]第二判斷單元,用于判斷存儲(chǔ)的各個(gè)鍵值定義是否存在于所述網(wǎng)頁(yè)已有的鍵值定義中;
[0033]注入單元,用于將存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,注入到所述網(wǎng)頁(yè)。
[0034]優(yōu)選地,所述初始模塊包括:
[0035]第一保存單元,用于將加載的用于初始化哈希映射表的第一配置文件中的鍵值及其映射值保存到所述哈希映射表中;
[0036]第二保存單元,用于將加載的用于定義瀏覽器的各個(gè)鍵值的鍵值定義的第二配置文件保存到瀏覽器的內(nèi)存中。
[0037]本發(fā)明提出的鍵值擴(kuò)展方法及系統(tǒng),在瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義,在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè),在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè),使得不同的網(wǎng)頁(yè)雖然定義的同一按鍵的鍵值不同,但仍能在不修改瀏覽器內(nèi)核配置的情況下得到網(wǎng)頁(yè)支持的鍵值,從而正確地響應(yīng)所述按鍵請(qǐng)求,提高了瀏覽器鍵值在不同網(wǎng)頁(yè)上的兼容性,避免了修改瀏覽器內(nèi)核配置導(dǎo)致存在很多版本的瀏覽器庫(kù)的問題。
【附圖說明】
[0038]圖1為本發(fā)明鍵值擴(kuò)展方法第一實(shí)施例的流程示意圖;
[0039]圖2為圖1中步驟S30的細(xì)化流程示意圖;
[0040]圖3為圖1中步驟S20的細(xì)化流程示意圖;
[0041]圖4為圖1中步驟SlO的細(xì)化流程示意圖;
[0042]圖5為本發(fā)明鍵值擴(kuò)展系統(tǒng)第一實(shí)施例的功能模塊示意圖;
[0043]圖6為本發(fā)明鍵值擴(kuò)展系統(tǒng)第二實(shí)施例中處理模塊的細(xì)化功能模塊示意圖;
[0044]圖7為本發(fā)明鍵值擴(kuò)展系統(tǒng)第三實(shí)施例中注入模塊的細(xì)化功能模塊示意圖;
[0045]圖8為本發(fā)明鍵值擴(kuò)展系統(tǒng)第四實(shí)施例中初始模塊的細(xì)化功能模塊示意圖。
[0046]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
【具體實(shí)施方式】
[0047]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0048]本發(fā)明提供一種鍵值擴(kuò)展方法,如圖1所示,示出了本發(fā)明鍵值擴(kuò)展方法第一實(shí)施例的流程示意圖,所述鍵值擴(kuò)展方法包括:
[0049]S10、瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義;
[0050]所述鍵值擴(kuò)展方法可應(yīng)用在電視機(jī)上,電視機(jī)上安裝的瀏覽器為嵌入式瀏覽器。電視機(jī)上的瀏覽器在啟動(dòng)時(shí),需要加載各種文件,其中包括存儲(chǔ)平臺(tái)原始按鍵值及其對(duì)應(yīng)的網(wǎng)頁(yè)定義按鍵值的文件,如keymap.1ni文件,還包括注入文件,如key_in ject.js文件,注入文件包含的內(nèi)容是需要注入的各個(gè)鍵值定義。
[005?]在本實(shí)施例中,所述指定的加載文件指keymap.1ni文件和key_inject.js文件。電視機(jī)根據(jù)keymap.1ni文件中的內(nèi)容初始化得到所述哈希映射表,并將key_inject.js文件中的內(nèi)容存儲(chǔ)到電視機(jī)上。其中,所述哈希映射表包括鍵值及其映射值,即各個(gè)平臺(tái)原始按鍵值及其映射的網(wǎng)頁(yè)定義按鍵值。
[0052]S20、在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè);
[0053]當(dāng)在瀏覽器上打開一個(gè)網(wǎng)頁(yè)時(shí),電視機(jī)根據(jù)加載的網(wǎng)頁(yè)信息獲取到所述網(wǎng)頁(yè)已有的鍵值定義,通過將所述網(wǎng)頁(yè)已有的鍵值定義與所述存儲(chǔ)的鍵值定義進(jìn)行比較,從而確定出存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)所沒有的鍵值定義,此時(shí),電視機(jī)將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè),使得所述網(wǎng)頁(yè)增加了一些其所沒有定義的鍵值定義,如鍵值定義var KEYUP = 310表示網(wǎng)頁(yè)中按鍵KEYUP對(duì)應(yīng)的鍵值是310。
[0054]S30、在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)。
[0055]當(dāng)電視機(jī)接收到一個(gè)平臺(tái)(如遙控器或鍵盤)發(fā)送的在所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),電視機(jī)根據(jù)所述按鍵請(qǐng)求中包含的鍵值(即平臺(tái)原始按鍵值),從所述哈希映射表中查詢所述鍵值對(duì)應(yīng)的映射值(即網(wǎng)頁(yè)定義按鍵值),并確定一個(gè)所述網(wǎng)頁(yè)需要的映射值返回給所述網(wǎng)頁(yè),以使所述網(wǎng)頁(yè)根據(jù)獲得的按鍵映射值對(duì)平臺(tái)上的按鍵事件作出響應(yīng)。
[0056]本發(fā)明提出的鍵值擴(kuò)展方法,在瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義,在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè),在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè),使得不同的網(wǎng)頁(yè)雖然定義的同一按鍵的鍵值不同,但仍能在不修改瀏覽器內(nèi)核配置的情況下得到網(wǎng)頁(yè)支持的鍵值,從而正確地響應(yīng)所述按鍵請(qǐng)求,提高了瀏覽器鍵值在不同網(wǎng)頁(yè)上的兼容性,避免了修改瀏覽器內(nèi)核配置導(dǎo)致存在很多版本的瀏覽器庫(kù)的問題。
[0057]進(jìn)一步地,基于第一實(shí)施例提出本發(fā)明鍵值擴(kuò)展方法第二實(shí)施例,在本實(shí)施例中,參照?qǐng)D2,上述步驟S30包括:
[0058]S31、查詢所述哈希映射表中是否存在所述鍵值;
[0059]其中,所述鍵值指的是所述按鍵請(qǐng)求中包含的平臺(tái)原始按鍵值。
[0060]S32、當(dāng)所述哈希映射表中存在所述鍵值時(shí),判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值;
[0061]同一按鍵的平臺(tái)原始按鍵值是相同的,而對(duì)于不同的網(wǎng)頁(yè),同一平臺(tái)原始按鍵值對(duì)應(yīng)不同的網(wǎng)頁(yè)可映射有不同的網(wǎng)頁(yè)定義按鍵值,即在所述哈希映射表中,所述鍵值可存在多個(gè)映射值,這些映射值分別對(duì)應(yīng)不同的網(wǎng)頁(yè)定義的同一按鍵的網(wǎng)頁(yè)定義按鍵值。
[0062]電視機(jī)通過所述網(wǎng)頁(yè)的網(wǎng)頁(yè)信息能夠獲取到所述網(wǎng)頁(yè)定義的所述鍵值對(duì)應(yīng)按鍵的網(wǎng)頁(yè)定義按鍵值,然后從所述哈希映射表中查找所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義按鍵值,從而判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值。
[0063]S33、當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)。
[0064]當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),表示電視機(jī)能夠?qū)⑺霭存I請(qǐng)求中包含的平臺(tái)原始按鍵值,對(duì)應(yīng)轉(zhuǎn)換為所述網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值。在電視機(jī)將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)后,所述網(wǎng)頁(yè)能夠根據(jù)返回的映射值對(duì)所述按鍵請(qǐng)求作出正確的響應(yīng)。從電視機(jī)接收按鍵請(qǐng)求到網(wǎng)頁(yè)作出響應(yīng)的整個(gè)過程,電視機(jī)無需修改瀏覽器內(nèi)核配置以使所述網(wǎng)頁(yè)支持對(duì)所述按鍵請(qǐng)求的正確響應(yīng)。
[0065]進(jìn)一步地,上述步驟S30還包括:
[0066]S34、當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述鍵值的默認(rèn)映射值返回給所述網(wǎng)頁(yè)。
[0067]當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),表示電視機(jī)根據(jù)所述按鍵請(qǐng)求中包含的平臺(tái)原始按鍵值,無法將其轉(zhuǎn)換為所述網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值,此時(shí),電視機(jī)將瀏覽器內(nèi)核配置中,關(guān)于所述按鍵請(qǐng)求包含的平臺(tái)原始按鍵值對(duì)應(yīng)的網(wǎng)頁(yè)的默認(rèn)映射值,作為所述網(wǎng)頁(yè)對(duì)所述按鍵請(qǐng)求的需求鍵值返回給所述網(wǎng)頁(yè),在所述網(wǎng)頁(yè)采用與瀏覽器一致的按鍵定義標(biāo)準(zhǔn)時(shí),即可根據(jù)返回的默認(rèn)映射值對(duì)所述按鍵請(qǐng)求作出正確的響應(yīng)。
[0068]本發(fā)明提出的鍵值擴(kuò)展方法,對(duì)于網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值在所述哈希映射表中存在時(shí),便將與網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值相同的映射值返回給網(wǎng)頁(yè),對(duì)于網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值不存在所述哈希映射表的情況,便將瀏覽器內(nèi)核配置的映射值返回給網(wǎng)頁(yè),以達(dá)到最大程度地正確返回網(wǎng)頁(yè)支持的鍵值,從而使網(wǎng)頁(yè)對(duì)按鍵請(qǐng)求作出正確的響應(yīng)。
[0069]進(jìn)一步地,基于第二實(shí)施例提出本發(fā)明鍵值擴(kuò)展方法第三實(shí)施例,在本實(shí)施例中,參照?qǐng)D3,上述步驟S20包括:
[0070]S21、判斷存儲(chǔ)的各個(gè)鍵值定義是否存在于所述網(wǎng)頁(yè)已有的鍵值定義中;
[0071]S22、將存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,注入到所述網(wǎng)頁(yè)。
[0072]電視機(jī)將存儲(chǔ)的各個(gè)鍵值定義分別與所述網(wǎng)頁(yè)已有的鍵值定義進(jìn)行比較,從而判斷得出存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,然后將判斷得出的這些鍵值定義注入到所述網(wǎng)頁(yè),以增強(qiáng)網(wǎng)頁(yè)支持的不同鍵值定義的按鍵。
[0073]本發(fā)明提出的鍵值擴(kuò)展方法,將瀏覽器存儲(chǔ)的鍵值定義中網(wǎng)頁(yè)沒有的鍵值定義注入到網(wǎng)頁(yè)中,增強(qiáng)了網(wǎng)頁(yè)對(duì)不同按鍵的支持。
[0074]進(jìn)一步地,基于第三實(shí)施例提出本發(fā)明鍵值擴(kuò)展方法第四實(shí)施例,在本實(shí)施例中,參照?qǐng)D4,上述步驟S1包括:
[0075]Sll、將加載的用于初始化哈希映射表的第一配置文件中的鍵值及其映射值保存到所述哈希映射表中;
[0076]S12、將加載的用于定義瀏覽器的各個(gè)鍵值的鍵值定義的第二配置文件保存到瀏覽器的內(nèi)存中。
[0077]所述第一配置文件是指包括平臺(tái)原始按鍵值及其對(duì)應(yīng)的網(wǎng)頁(yè)定義按鍵值的文件,如上述keymap.1ni文件;所述第二配置文件是指包含需要注入的各個(gè)鍵值定義的文件,如上述key_in ject.js文件。
[0078]當(dāng)一個(gè)網(wǎng)頁(yè)需要使用的按鍵是瀏覽器內(nèi)核不支持的按鍵時(shí),假設(shè)該網(wǎng)頁(yè)對(duì)這樣的一個(gè)按鍵KEYRED定義的網(wǎng)頁(yè)定義按鍵值為408,按鍵KEYRED在平臺(tái)上的平臺(tái)原始按鍵值為110,則當(dāng)電視機(jī)檢測(cè)到該網(wǎng)頁(yè)需要使用的按鍵KEYRED在瀏覽器上不支持時(shí),電視機(jī)將按鍵KEYRED的平臺(tái)原始按鍵值及其對(duì)應(yīng)的該網(wǎng)頁(yè)的網(wǎng)頁(yè)定義按鍵值,對(duì)應(yīng)添加到keymap.1ni文件中,并將鍵值定義var KEYRED = 408添加到key_inject.js文件中。
[0079]本發(fā)明提出的鍵值擴(kuò)展方法,將網(wǎng)頁(yè)需要的按鍵對(duì)應(yīng)的網(wǎng)頁(yè)定義按鍵值及鍵值定義分別添加到指定的加載文件中,以使瀏覽器啟動(dòng)時(shí),獲取到包含新添加的按鍵的哈希映射表和鍵值定義,從而使瀏覽器支持新添加的按鍵。
[0080]本發(fā)明還提供一種鍵值擴(kuò)展系統(tǒng),如圖5所示,示出了本發(fā)明鍵值擴(kuò)展系統(tǒng)第一實(shí)施例的功能模塊示意圖,所述鍵值擴(kuò)展系統(tǒng)包括:
[0081 ]初始模塊100,用于瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義;
[0082]所述鍵值擴(kuò)展系統(tǒng)可設(shè)置在電視機(jī)上,電視機(jī)上安裝的瀏覽器為嵌入式瀏覽器。電視機(jī)上的瀏覽器在啟動(dòng)時(shí),需要加載各種文件,其中包括存儲(chǔ)平臺(tái)原始按鍵值及其對(duì)應(yīng)的網(wǎng)頁(yè)定義按鍵值的文件,如keymap.1ni文件,還包括注入文件,如key_in ject.js文件,注入文件包含的內(nèi)容是需要注入的各個(gè)鍵值定義。
[0083]在本實(shí)施例中,所述指定的加載文件指keymap.1ni文件和key_inject.js文件。電視機(jī)的初始模塊100根據(jù)keymap.1ni文件中的內(nèi)容初始化得到所述哈希映射表,并將key_inject.js文件中的內(nèi)容存儲(chǔ)到電視機(jī)上。其中,所述哈希映射表包括鍵值及其映射值,即各個(gè)平臺(tái)原始按鍵值及其映射的網(wǎng)頁(yè)定義按鍵值。
[0084]注入模塊200,用于在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè);
[0085]當(dāng)在瀏覽器上打開一個(gè)網(wǎng)頁(yè)時(shí),電視機(jī)的注入模塊200根據(jù)加載的網(wǎng)頁(yè)信息獲取到所述網(wǎng)頁(yè)已有的鍵值定義,通過將所述網(wǎng)頁(yè)已有的鍵值定義與所述存儲(chǔ)的鍵值定義進(jìn)行比較,從而確定出存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)所沒有的鍵值定義,此時(shí),注入模塊200將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè),使得所述網(wǎng)頁(yè)增加了一些其所沒有定義的鍵值定義,如鍵值定義var KEYUP = 310表示網(wǎng)頁(yè)中按鍵KEYUP對(duì)應(yīng)的鍵值是310。
[0086]處理模塊300,用于在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)。
[0087]當(dāng)電視機(jī)的處理模塊300接收到一個(gè)平臺(tái)(如遙控器或鍵盤)發(fā)送的在所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),處理模塊300根據(jù)所述按鍵請(qǐng)求中包含的鍵值(即平臺(tái)原始按鍵值),從所述哈希映射表中查詢所述鍵值對(duì)應(yīng)的映射值(即網(wǎng)頁(yè)定義按鍵值),并確定一個(gè)所述網(wǎng)頁(yè)需要的映射值返回給所述網(wǎng)頁(yè),以使所述網(wǎng)頁(yè)根據(jù)獲得的按鍵映射值對(duì)平臺(tái)上的按鍵事件作出響應(yīng)。
[0088]本發(fā)明提出的鍵值擴(kuò)展系統(tǒng),在瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義,在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè),在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè),使得不同的網(wǎng)頁(yè)雖然定義的同一按鍵的鍵值不同,但仍能在不修改瀏覽器內(nèi)核配置的情況下得到網(wǎng)頁(yè)支持的鍵值,從而正確地響應(yīng)所述按鍵請(qǐng)求,提高了瀏覽器鍵值在不同網(wǎng)頁(yè)上的兼容性,避免了修改瀏覽器內(nèi)核配置導(dǎo)致存在很多版本的瀏覽器庫(kù)的問題。
[0089]進(jìn)一步地,基于上述第一實(shí)施例提出本發(fā)明鍵值擴(kuò)展系統(tǒng)第二實(shí)施例,參照?qǐng)D6,所述處理模塊300包括:
[0090]查詢單元301,用于查詢所述哈希映射表中是否存在所述鍵值;
[0091]其中,所述鍵值指的是所述按鍵請(qǐng)求中包含的平臺(tái)原始按鍵值。
[0092]第一判斷單元302,用于當(dāng)所述哈希映射表中存在所述鍵值時(shí),判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值;
[0093]同一按鍵的平臺(tái)原始按鍵值是相同的,而對(duì)于不同的網(wǎng)頁(yè),同一平臺(tái)原始按鍵值對(duì)應(yīng)不同的網(wǎng)頁(yè)可映射有不同的網(wǎng)頁(yè)定義按鍵值,即在所述哈希映射表中,所述鍵值可存在多個(gè)映射值,這些映射值分別對(duì)應(yīng)不同的網(wǎng)頁(yè)定義的同一按鍵的網(wǎng)頁(yè)定義按鍵值。
[0094]電視機(jī)的第一判斷單元302通過所述網(wǎng)頁(yè)的網(wǎng)頁(yè)信息能夠獲取到所述網(wǎng)頁(yè)定義的所述鍵值對(duì)應(yīng)按鍵的網(wǎng)頁(yè)定義按鍵值,然后從所述哈希映射表中查找所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義按鍵值,從而判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值。
[0095]第一處理單元303,用于當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)。
[0096]當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),表示電視機(jī)能夠?qū)⑺霭存I請(qǐng)求中包含的平臺(tái)原始按鍵值,對(duì)應(yīng)轉(zhuǎn)換為所述網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值。在第一處理單元303將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)后,所述網(wǎng)頁(yè)能夠根據(jù)返回的映射值對(duì)所述按鍵請(qǐng)求作出正確的響應(yīng)。從電視機(jī)接收按鍵請(qǐng)求到網(wǎng)頁(yè)作出響應(yīng)的整個(gè)過程,電視機(jī)無需修改瀏覽器內(nèi)核配置以使所述網(wǎng)頁(yè)支持對(duì)所述按鍵請(qǐng)求的正確響應(yīng)。
[0097]進(jìn)一步地,所述處理模塊300還包括:
[0098]第二處理單元304,用于當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述鍵值的默認(rèn)映射值返回給所述網(wǎng)頁(yè)。
[0099]當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),表示電視機(jī)根據(jù)所述按鍵請(qǐng)求中包含的平臺(tái)原始按鍵值,無法將其轉(zhuǎn)換為所述網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值,此時(shí),第二處理單元304將瀏覽器內(nèi)核配置中,關(guān)于所述按鍵請(qǐng)求包含的平臺(tái)原始按鍵值對(duì)應(yīng)的網(wǎng)頁(yè)的默認(rèn)映射值,作為所述網(wǎng)頁(yè)對(duì)所述按鍵請(qǐng)求的需求鍵值返回給所述網(wǎng)頁(yè),在所述網(wǎng)頁(yè)采用與瀏覽器一致的按鍵定義標(biāo)準(zhǔn)時(shí),即可根據(jù)返回的默認(rèn)映射值對(duì)所述按鍵請(qǐng)求作出正確的響應(yīng)。
[0100]本發(fā)明提出的鍵值擴(kuò)展系統(tǒng),對(duì)于網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值在所述哈希映射表中存在時(shí),便將與網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值相同的映射值返回給網(wǎng)頁(yè),對(duì)于網(wǎng)頁(yè)定義的網(wǎng)頁(yè)定義按鍵值不存在所述哈希映射表的情況,便將瀏覽器內(nèi)核配置的映射值返回給網(wǎng)頁(yè),以達(dá)到最大程度地正確返回網(wǎng)頁(yè)支持的鍵值,從而使網(wǎng)頁(yè)對(duì)按鍵請(qǐng)求作出正確的響應(yīng)。
[0101]進(jìn)一步地,基于上述第二實(shí)施例提出本發(fā)明鍵值擴(kuò)展系統(tǒng)第三實(shí)施例,參照?qǐng)D7,所述注入模塊200包括:
[0102]第二判斷單元201,用于判斷存儲(chǔ)的各個(gè)鍵值定義是否存在于所述網(wǎng)頁(yè)已有的鍵值定義中;
[0103]注入單元202,用于將存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,注入到所述網(wǎng)頁(yè)。
[0104]第二判斷單元201將存儲(chǔ)的各個(gè)鍵值定義分別與所述網(wǎng)頁(yè)已有的鍵值定義進(jìn)行比較,從而判斷得出存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,然后注入單元202將判斷得出的這些鍵值定義注入到所述網(wǎng)頁(yè),以增強(qiáng)網(wǎng)頁(yè)支持的不同鍵值定義的按鍵。
[0105]本發(fā)明提出的鍵值擴(kuò)展系統(tǒng),將瀏覽器存儲(chǔ)的鍵值定義中網(wǎng)頁(yè)沒有的鍵值定義注入到網(wǎng)頁(yè)中,增強(qiáng)了網(wǎng)頁(yè)對(duì)不同按鍵的支持。
[0106]進(jìn)一步地,基于上述第三實(shí)施例提出本發(fā)明鍵值擴(kuò)展系統(tǒng)第四實(shí)施例,參照?qǐng)D8,所述初始模塊100包括:
[0107]第一保存單元101,用于將加載的用于初始化哈希映射表的第一配置文件中的鍵值及其映射值保存到所述哈希映射表中;
[0108]第二保存單元102,用于將加載的用于定義瀏覽器的各個(gè)鍵值的鍵值定義的第二配置文件保存到瀏覽器的內(nèi)存中。
[0109]所述第一配置文件是指包括平臺(tái)原始按鍵值及其對(duì)應(yīng)的網(wǎng)頁(yè)定義按鍵值的文件,如上述keymap.1ni文件;所述第二配置文件是指包含需要注入的各個(gè)鍵值定義的文件,如上述key_in ject.js文件。
[0110]當(dāng)一個(gè)網(wǎng)頁(yè)需要使用的按鍵是瀏覽器內(nèi)核不支持的按鍵時(shí),假設(shè)該網(wǎng)頁(yè)對(duì)這樣的一個(gè)按鍵KEYRED定義的網(wǎng)頁(yè)定義按鍵值為408,按鍵KEYRED在平臺(tái)上的平臺(tái)原始按鍵值為110,則當(dāng)電視機(jī)檢測(cè)到該網(wǎng)頁(yè)需要使用的按鍵KEYRED在瀏覽器上不支持時(shí),電視機(jī)將按鍵KEYRED的平臺(tái)原始按鍵值及其對(duì)應(yīng)的該網(wǎng)頁(yè)的網(wǎng)頁(yè)定義按鍵值,對(duì)應(yīng)添加到keymap.1ni文件中,并將鍵值定義var KEYRED = 408添加到key_inject.js文件中。
[0111]本發(fā)明提出的鍵值擴(kuò)展系統(tǒng),將網(wǎng)頁(yè)需要的按鍵對(duì)應(yīng)的網(wǎng)頁(yè)定義按鍵值及鍵值定義分別添加到指定的加載文件中,以使瀏覽器啟動(dòng)時(shí),獲取到包含新添加的按鍵的哈希映射表和鍵值定義,從而使瀏覽器支持新添加的按鍵。
[0112]以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種鍵值擴(kuò)展方法,其特征在于,所述鍵值擴(kuò)展方法包括: 瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義;其中,所述哈希映射表包括鍵值及其映射值; 在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè); 在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)。2.如權(quán)利要求1所述的鍵值擴(kuò)展方法,其特征在于,所述根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)包括: 查詢所述哈希映射表中是否存在所述鍵值; 當(dāng)所述哈希映射表中存在所述鍵值時(shí),判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值; 當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)。3.如權(quán)利要求2所述的鍵值擴(kuò)展方法,其特征在于,所述根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)還包括: 當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述鍵值的默認(rèn)映射值返回給所述網(wǎng)頁(yè)。4.如權(quán)利要求1所述的鍵值擴(kuò)展方法,其特征在于,所述根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè)包括: 判斷存儲(chǔ)的各個(gè)鍵值定義是否存在于所述網(wǎng)頁(yè)已有的鍵值定義中; 將存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,注入到所述網(wǎng)頁(yè)。5.如權(quán)利要求1-4任一項(xiàng)所述的鍵值擴(kuò)展方法,其特征在于,所述根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義包括: 將加載的用于初始化哈希映射表的第一配置文件中的鍵值及其映射值保存到所述哈希映射表中; 將加載的用于定義瀏覽器的各個(gè)鍵值的鍵值定義的第二配置文件保存到瀏覽器的內(nèi)存中。6.一種鍵值擴(kuò)展系統(tǒng),其特征在于,所述鍵值擴(kuò)展系統(tǒng)包括: 初始模塊,用于瀏覽器啟動(dòng)時(shí),根據(jù)指定的加載文件初始化哈希映射表并存儲(chǔ)需要注入的鍵值定義;其中,所述哈希映射表包括鍵值及其映射值; 注入模塊,用于在打開一個(gè)網(wǎng)頁(yè)時(shí),根據(jù)存儲(chǔ)的鍵值定義和所述網(wǎng)頁(yè)已有的鍵值定義,將存儲(chǔ)的鍵值定義中所述網(wǎng)頁(yè)沒有的鍵值定義注入到所述網(wǎng)頁(yè); 處理模塊,用于在接收到所述網(wǎng)頁(yè)上的按鍵請(qǐng)求時(shí),根據(jù)所述按鍵請(qǐng)求包含的鍵值查詢所述哈希映射表中所述網(wǎng)頁(yè)需要的映射值,并將查詢到的映射值返回給所述網(wǎng)頁(yè)。7.如權(quán)利要求6所述的鍵值擴(kuò)展系統(tǒng),其特征在于,所述處理模塊包括: 查詢單元,用于查詢所述哈希映射表中是否存在所述鍵值; 第一判斷單元,用于當(dāng)所述哈希映射表中存在所述鍵值時(shí),判斷所述鍵值的映射值中是否存在所述網(wǎng)頁(yè)定義的映射值; 第一處理單元,用于當(dāng)所述鍵值的映射值中存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述網(wǎng)頁(yè)定義的映射值返回給所述網(wǎng)頁(yè)。8.如權(quán)利要求7所述的鍵值擴(kuò)展系統(tǒng),其特征在于,所述處理模塊還包括: 第二處理單元,用于當(dāng)所述鍵值的映射值中不存在所述網(wǎng)頁(yè)定義的映射值時(shí),將所述鍵值的默認(rèn)映射值返回給所述網(wǎng)頁(yè)。9.如權(quán)利要求6所述的鍵值擴(kuò)展系統(tǒng),其特征在于,所述注入模塊包括: 第二判斷單元,用于判斷存儲(chǔ)的各個(gè)鍵值定義是否存在于所述網(wǎng)頁(yè)已有的鍵值定義中; 注入單元,用于將存儲(chǔ)的各個(gè)鍵值定義中不存在于所述網(wǎng)頁(yè)已有的鍵值定義中的鍵值定義,注入到所述網(wǎng)頁(yè)。10.如權(quán)利要求6-9任一項(xiàng)所述的鍵值擴(kuò)展系統(tǒng),其特征在于,所述初始模塊包括: 第一保存單元,用于將加載的用于初始化哈希映射表的第一配置文件中的鍵值及其映射值保存到所述哈希映射表中; 第二保存單元,用于將加載的用于定義瀏覽器的各個(gè)鍵值的鍵值定義的第二配置文件保存到瀏覽器的內(nèi)存中。
【文檔編號(hào)】G06F9/44GK105867942SQ201610244821
【公開日】2016年8月17日
【申請(qǐng)日】2016年4月19日
【發(fā)明人】劉江君
【申請(qǐng)人】深圳Tcl數(shù)字技術(shù)有限公司