一種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于web技術(shù)領(lǐng)域,涉及android智能機(jī)頂盒上瀏覽web頁面的遙控器按鍵處理技術(shù),具體是一種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法。
【背景技術(shù)】
[0002]在三網(wǎng)融合的大背景下,伴隨著互聯(lián)網(wǎng)電視的迅速發(fā)展,搭載android系統(tǒng)的智能機(jī)頂盒以其優(yōu)良的性能、強(qiáng)大的功能和豐富的應(yīng)用逐漸成為機(jī)頂盒市場的主流品種,得以廣泛應(yīng)用。
[0003]目前,機(jī)頂盒遙控器對web頁面的操作依賴于android系統(tǒng)自身的一套按鍵響應(yīng)處理算法,這套算法通過分析頁面元素屬性和關(guān)系去處理和響應(yīng)遙控器按鍵事件。結(jié)合圖1,原有android機(jī)頂盒遙控器按鍵處理流程如下:
[0004]1.用戶使用遙控器通過瀏覽器或者瀏覽器控件webview訪問網(wǎng)頁時(shí),遙控器的按鍵事件經(jīng)過android系統(tǒng)分發(fā)到webview的onKeyDownO函數(shù)中;
[0005]2.0nKeyDown O調(diào)用android framework中自帶的按鍵處理算法,對遙控器按鍵進(jìn)行處理;
[0006]3.處理結(jié)果通知本地瀏覽器內(nèi)核webkit engine,完成對web頁面的更新,例如移動(dòng)焦點(diǎn)等。
[0007]在頁面比較簡單,元素關(guān)系比較清晰的情況下,android系統(tǒng)的按鍵處理算法能夠正常發(fā)揮作用。然而,當(dāng)用戶訪問較復(fù)雜的頁面,頁面元素關(guān)系不是很清晰時(shí),android系統(tǒng)對按鍵的響應(yīng)處理與用戶實(shí)際操作目的就會出現(xiàn)很大差異,經(jīng)常出現(xiàn)焦點(diǎn)移動(dòng)順序無法控制、難以將焦點(diǎn)移動(dòng)到期望的元素上等問題,造成用戶操作困難,嚴(yán)重影響用戶體驗(yàn)。
[0008]此外,由于這套按鍵響應(yīng)算法在本地android系統(tǒng)內(nèi)部,不同版本的android系統(tǒng)中該算法也會存在差異,所以同一個(gè)web頁面在搭載不同android版本的機(jī)頂盒上,相同按鍵操作的結(jié)果往往不盡相同,導(dǎo)致用戶體驗(yàn)不一致,影響市場推廣。
[0009]因此,在android電視機(jī)頂盒上瀏覽網(wǎng)頁時(shí),目前對機(jī)頂盒遙控器的按鍵響應(yīng)至少存在以下問題:
[0010]第一,無法適應(yīng)機(jī)頂盒遙控器對頁面的控制要求。當(dāng)前,web頁面越來越復(fù)雜,而且往往會使用各種各樣的框架,試圖使用android本身的一套按鍵響應(yīng)算法去準(zhǔn)確地適配所有頁面,無疑是極其困難的。
[0011]第二,不能滿足適配不同版本android系統(tǒng)的需求。將按鍵響應(yīng)算法置于機(jī)頂盒android系統(tǒng)內(nèi)部的方法使得不同版本android系統(tǒng)內(nèi)按鍵響應(yīng)存在差異,造成不同機(jī)頂盒上操作體驗(yàn)不一致,同時(shí)還需要web頁面的開發(fā)人員在設(shè)計(jì)、開發(fā)和測試時(shí)都要考慮頁面在多機(jī)頂盒上的適配性,大大增加了開發(fā)成本。
【發(fā)明內(nèi)容】
[0012]針對以上問題,我們提出了一種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法,具體方案為:
[0013]—種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法,在按鍵處理過程中android智能機(jī)頂盒的客戶端攔截遙控器按鍵事件,屏蔽android系統(tǒng)自帶的按鍵響應(yīng)算法,并將遙控器按鍵事件傳給云端web頁面,最終由web頁面完成對遙控器按鍵事件的處理和響應(yīng)。
[0014]所述通用方法的具體流程為:
[0015]I)屏蔽遙控器按鍵的本地處理,當(dāng)遙控器按鍵事件被送到瀏覽器控件webview的onKeyDown ()函數(shù)時(shí),重載onKeyDown O函數(shù),對遙控器按鍵事件進(jìn)行攔截,使其不再向下觸發(fā)調(diào)用android系統(tǒng)自帶的按鍵響應(yīng)算法;
[0016]2)在onKeyDownO函數(shù)中執(zhí)行一段本地JavaScript代碼將當(dāng)前遙控器按鍵的鍵值keyCode傳給云端web頁面的document對象;
[0017]3)在云端的web頁面中增加按鍵響應(yīng)處理模塊,負(fù)責(zé)接收傳上來的按鍵KeyCode,并進(jìn)行處理和響應(yīng)。
[0018]所述web頁面中按鍵響應(yīng)處理模塊的具體操作包括:首先從當(dāng)前頁面的document對象中獲取按鍵的鍵值keyCode,然后判斷對此keyCode的處理是否需要回調(diào)android本地java方法,若不需要,則直接在web頁面內(nèi)部完成按鍵響應(yīng)處理;若需要執(zhí)行android本地java方法,貝Ij在處理邏輯中自定義js方法,同時(shí)在機(jī)頂盒瀏覽器控件webview中將此js方法與本地Java方法進(jìn)行關(guān)聯(lián),從而實(shí)現(xiàn)對android本地java方法的回調(diào),配合完成按鍵響應(yīng)處理。
[0019]本發(fā)明的有益效果
[0020]1.解決在android智能機(jī)頂盒上使用遙控器操作網(wǎng)頁比較困難的問題,確保用戶可以流暢地使用遙控器操作web頁面,提升用戶體驗(yàn),適應(yīng)互聯(lián)網(wǎng)電視快速發(fā)展的市場需求。
[0021]2.利用云端處理遙控器按鍵事件的方法,徹底解決本地android系統(tǒng)版本不同帶來的按鍵響應(yīng)結(jié)果差異和用戶體驗(yàn)不一致問題。同時(shí)避免了 web頁面開發(fā)過程中需要適配不同android系統(tǒng)版本的問題,節(jié)省開發(fā)成本,提高開發(fā)效率。
【附圖說明】
[0022]圖1為現(xiàn)有技術(shù)中android機(jī)頂盒遙控器按鍵處理流程。
[0023]圖2為本發(fā)明的遙控器按鍵的處理流程。
【具體實(shí)施方式】
[0024]下面結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步說明,但本發(fā)明的保護(hù)范圍不限于此:
[0025]—種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法,在按鍵處理過程中android智能機(jī)頂盒的客戶端攔截遙控器按鍵事件,屏蔽android系統(tǒng)自帶的按鍵響應(yīng)算法,并將遙控器按鍵事件傳給云端web頁面,最終由web頁面完成對遙控器按鍵事件的處理和響應(yīng)。
[0026]結(jié)合圖2,在優(yōu)選的實(shí)施例中,本發(fā)明的遙控器按鍵的處理流程為:
[0027]I)屏蔽遙控器按鍵的本地處理,當(dāng)遙控器按鍵事件被送到瀏覽器控件webview的onKeyDown ()函數(shù)時(shí),重載onKeyDown O函數(shù),對遙控器按鍵事件進(jìn)行攔截,使其不再向下觸發(fā)調(diào)用android系統(tǒng)自帶的按鍵響應(yīng)算法;
[0028]2)在onKeyDown O函數(shù)中執(zhí)行一段本地JavaScript代碼將當(dāng)前遙控器按鍵的鍵值keyCode傳給云端web頁面的document對象;
[0029]3)在云端的web頁面中增加按鍵響應(yīng)處理模塊,負(fù)責(zé)接收傳上來的按鍵KeyCode,并進(jìn)行處理和響應(yīng)。
[0030]在優(yōu)選的實(shí)施例中,步驟3)中所述web頁面中按鍵響應(yīng)處理模塊的具體操作包括:首先從當(dāng)前頁面的document對象中獲取按鍵的鍵值keyCode,然后判斷對此keyCode的處理是否需要回調(diào)android本地java方法,若不需要,貝U直接在web頁面內(nèi)部完成按鍵響應(yīng)處理;若需要執(zhí)行android本地java方法,則在處理邏輯中自定義js方法,同時(shí)在機(jī)頂盒瀏覽器控件webview中將此js方法與本地Java方法進(jìn)行關(guān)聯(lián),從而實(shí)現(xiàn)對android本地java方法的回調(diào),配合完成按鍵響應(yīng)處理。
[0031]與現(xiàn)有技術(shù)相比,本發(fā)明具有的優(yōu)點(diǎn)十分明顯:
[0032]1、web頁面上遙控器按鍵的響應(yīng)處理邏輯更加合理,用戶操作更流暢:
[0033]android機(jī)頂盒上原有的按鍵處理是使用android自帶的按鍵響應(yīng)處理算法來完成的,該算法只能通過預(yù)先定義的常規(guī)頁面元素屬性及關(guān)系來響應(yīng)按鍵事件,這就決定了其只能處理比較簡單的web頁面,對較復(fù)雜的頁面,往往無能為力,導(dǎo)致按鍵處理結(jié)果不合理,操作困難,用戶體驗(yàn)差。
[0034]本發(fā)明中按鍵事件的響應(yīng)處理由web頁面來完成,由于web頁面的設(shè)計(jì)開發(fā)者對自己頁面的元素屬性和關(guān)系非常了解,可以確保按鍵處理的合理性,并保證用戶操作的流暢性。
[0035]2、在不同的android機(jī)頂盒上向用戶提供一致的操作體驗(yàn),避免了 web頁面在不同機(jī)頂盒上的適配工作:
[0036]android自帶的按鍵處理算法在本地android系統(tǒng)內(nèi)部,隨著android版本的不同,其算法本身也會存在差異,這就導(dǎo)致了不同的機(jī)頂盒瀏覽同一個(gè)web頁面時(shí),對遙控器按鍵的處理結(jié)果往往不相同,表現(xiàn)出來就是同一 web頁面在不同機(jī)頂盒上的操作體驗(yàn)不一致。這也要求web頁面在開發(fā)和測試的過程中需要考慮對不同機(jī)頂盒的適配問題,增加了開發(fā)和測試的工作量。
[0037]本發(fā)明中,遙控器按鍵的處理權(quán)從本地機(jī)頂盒移交給了云端的web頁面,使得按鍵處理邏輯與機(jī)頂盒本地系統(tǒng)無關(guān),保證了用戶操作體驗(yàn)在任何機(jī)頂盒上都是一致的,同時(shí)無須對不同機(jī)頂盒進(jìn)行web頁面的適配,大大減輕了 web頁面開發(fā)者的工作量。
[0038]本文中所描述的具體實(shí)施例僅僅是對本發(fā)明精神做舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
【主權(quán)項(xiàng)】
1.一種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法,其特征在于在按鍵處理過程中android智能機(jī)頂盒的客戶端攔截遙控器按鍵事件,屏蔽android系統(tǒng)自帶的按鍵響應(yīng)算法,并將遙控器按鍵事件傳給云端web頁面,最終由web頁面完成對遙控器按鍵事件的處理和響應(yīng)。2.根據(jù)權(quán)利要求1所述的一種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法,其特征在于所述通用方法的具體流程為: 1)屏蔽遙控器按鍵的本地處理,當(dāng)遙控器按鍵事件被送到瀏覽器控件webview的onKeyDown O函數(shù)時(shí),重載onKeyDown O函數(shù),對遙控器按鍵事件進(jìn)行攔截,使其不再向下觸發(fā)調(diào)用android系統(tǒng)自帶的按鍵響應(yīng)算法; 2)在onKeyDownO函數(shù)中執(zhí)行一段本地JavaScript代碼將當(dāng)前遙控器按鍵的鍵值keyCode傳給云端web頁面的document對象; 3)在云端的web頁面中增加按鍵響應(yīng)處理模塊,負(fù)責(zé)接收傳上來的按鍵KeyCode,并進(jìn)行處理和響應(yīng)。3.根據(jù)權(quán)利要求2所述的一種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法,其特征在于所述web頁面中按鍵響應(yīng)處理模塊的具體操作包括:首先從當(dāng)前頁面的document對象中獲取按鍵的鍵值keyCode,然后判斷對此keyCode的處理是否需要回調(diào)android本地java方法,若不需要,貝Ij直接在web頁面內(nèi)部完成按鍵響應(yīng)處理;若需要執(zhí)行android本地java方法,則在處理邏輯中自定義js方法,同時(shí)在機(jī)頂盒瀏覽器控件webview中將此js方法與本地Java方法進(jìn)行關(guān)聯(lián),從而實(shí)現(xiàn)對android本地java方法的回調(diào),配合完成按鍵響應(yīng)處理。
【專利摘要】本發(fā)明公開了一種在android智能機(jī)頂盒上實(shí)現(xiàn)web頁面適配遙控器按鍵的通用方法,其特征在于在按鍵處理過程中android智能機(jī)頂盒的客戶端攔截遙控器按鍵事件,屏蔽android系統(tǒng)自帶的按鍵響應(yīng)算法,并將遙控器按鍵事件傳給云端web頁面,最終由web頁面完成對遙控器按鍵事件的處理和響應(yīng)。本發(fā)明將遙控器的按鍵處理權(quán)由本地android系統(tǒng)移交給云端web頁面,使得對遙控器按鍵的處理更加合理,用戶操作更流暢且在不同機(jī)頂盒上操作體驗(yàn)一致。
【IPC分類】H04N21/637, H04N21/41, H04N21/422
【公開號】CN104902298
【申請?zhí)枴緾N201510275947
【發(fā)明人】陳景釗, 成國強(qiáng), 楊立揚(yáng)
【申請人】江蘇省公用信息有限公司
【公開日】2015年9月9日
【申請日】2015年5月26日