一种在android智能机顶盒上实现web页面适配遥控器按键的通用方法
【技术领域】
[0001]本发明属于web技术领域,涉及android智能机顶盒上浏览web页面的遥控器按键处理技术,具体是一种在android智能机顶盒上实现web页面适配遥控器按键的通用方法。
【背景技术】
[0002]在三网融合的大背景下,伴随着互联网电视的迅速发展,搭载android系统的智能机顶盒以其优良的性能、强大的功能和丰富的应用逐渐成为机顶盒市场的主流品种,得以广泛应用。
[0003]目前,机顶盒遥控器对web页面的操作依赖于android系统自身的一套按键响应处理算法,这套算法通过分析页面元素属性和关系去处理和响应遥控器按键事件。结合图1,原有android机顶盒遥控器按键处理流程如下:
[0004]1.用户使用遥控器通过浏览器或者浏览器控件webview访问网页时,遥控器的按键事件经过android系统分发到webview的onKeyDownO函数中;
[0005]2.0nKeyDown O调用android framework中自带的按键处理算法,对遥控器按键进行处理;
[0006]3.处理结果通知本地浏览器内核webkit engine,完成对web页面的更新,例如移动焦点等。
[0007]在页面比较简单,元素关系比较清晰的情况下,android系统的按键处理算法能够正常发挥作用。然而,当用户访问较复杂的页面,页面元素关系不是很清晰时,android系统对按键的响应处理与用户实际操作目的就会出现很大差异,经常出现焦点移动顺序无法控制、难以将焦点移动到期望的元素上等问题,造成用户操作困难,严重影响用户体验。
[0008]此外,由于这套按键响应算法在本地android系统内部,不同版本的android系统中该算法也会存在差异,所以同一个web页面在搭载不同android版本的机顶盒上,相同按键操作的结果往往不尽相同,导致用户体验不一致,影响市场推广。
[0009]因此,在android电视机顶盒上浏览网页时,目前对机顶盒遥控器的按键响应至少存在以下问题:
[0010]第一,无法适应机顶盒遥控器对页面的控制要求。当前,web页面越来越复杂,而且往往会使用各种各样的框架,试图使用android本身的一套按键响应算法去准确地适配所有页面,无疑是极其困难的。
[0011]第二,不能满足适配不同版本android系统的需求。将按键响应算法置于机顶盒android系统内部的方法使得不同版本android系统内按键响应存在差异,造成不同机顶盒上操作体验不一致,同时还需要web页面的开发人员在设计、开发和测试时都要考虑页面在多机顶盒上的适配性,大大增加了开发成本。
【发明内容】
[0012]针对以上问题,我们提出了一种在android智能机顶盒上实现web页面适配遥控器按键的通用方法,具体方案为:
[0013]—种在android智能机顶盒上实现web页面适配遥控器按键的通用方法,在按键处理过程中android智能机顶盒的客户端拦截遥控器按键事件,屏蔽android系统自带的按键响应算法,并将遥控器按键事件传给云端web页面,最终由web页面完成对遥控器按键事件的处理和响应。
[0014]所述通用方法的具体流程为:
[0015]I)屏蔽遥控器按键的本地处理,当遥控器按键事件被送到浏览器控件webview的onKeyDown ()函数时,重载onKeyDown O函数,对遥控器按键事件进行拦截,使其不再向下触发调用android系统自带的按键响应算法;
[0016]2)在onKeyDownO函数中执行一段本地JavaScript代码将当前遥控器按键的键值keyCode传给云端web页面的document对象;
[0017]3)在云端的web页面中增加按键响应处理模块,负责接收传上来的按键KeyCode,并进行处理和响应。
[0018]所述web页面中按键响应处理模块的具体操作包括:首先从当前页面的document对象中获取按键的键值keyCode,然后判断对此keyCode的处理是否需要回调android本地java方法,若不需要,则直接在web页面内部完成按键响应处理;若需要执行android本地java方法,贝Ij在处理逻辑中自定义js方法,同时在机顶盒浏览器控件webview中将此js方法与本地Java方法进行关联,从而实现对android本地java方法的回调,配合完成按键响应处理。
[0019]本发明的有益效果
[0020]1.解决在android智能机顶盒上使用遥控器操作网页比较困难的问题,确保用户可以流畅地使用遥控器操作web页面,提升用户体验,适应互联网电视快速发展的市场需求。
[0021]2.利用云端处理遥控器按键事件的方法,彻底解决本地android系统版本不同带来的按键响应结果差异和用户体验不一致问题。同时避免了 web页面开发过程中需要适配不同android系统版本的问题,节省开发成本,提高开发效率。
【附图说明】
[0022]图1为现有技术中android机顶盒遥控器按键处理流程。
[0023]图2为本发明的遥控器按键的处理流程。
【具体实施方式】
[0024]下面结合实施例对本发明作进一步说明,但本发明的保护范围不限于此:
[0025]—种在android智能机顶盒上实现web页面适配遥控器按键的通用方法,在按键处理过程中android智能机顶盒的客户端拦截遥控器按键事件,屏蔽android系统自带的按键响应算法,并将遥控器按键事件传给云端web页面,最终由web页面完成对遥控器按键事件的处理和响应。
[0026]结合图2,在优选的实施例中,本发明的遥控器按键的处理流程为:
[0027]I)屏蔽遥控器按键的本地处理,当遥控器按键事件被送到浏览器控件webview的onKeyDown ()函数时,重载onKeyDown O函数,对遥控器按键事件进行拦截,使其不再向下触发调用android系统自带的按键响应算法;
[0028]2)在onKeyDown O函数中执行一段本地JavaScript代码将当前遥控器按键的键值keyCode传给云端web页面的document对象;
[0029]3)在云端的web页面中增加按键响应处理模块,负责接收传上来的按键KeyCode,并进行处理和响应。
[0030]在优选的实施例中,步骤3)中所述web页面中按键响应处理模块的具体操作包括:首先从当前页面的document对象中获取按键的键值keyCode,然后判断对此keyCode的处理是否需要回调android本地java方法,若不需要,贝U直接在web页面内部完成按键响应处理;若需要执行android本地java方法,则在处理逻辑中自定义js方法,同时在机顶盒浏览器控件webview中将此js方法与本地Java方法进行关联,从而实现对android本地java方法的回调,配合完成按键响应处理。
[0031]与现有技术相比,本发明具有的优点十分明显:
[0032]1、web页面上遥控器按键的响应处理逻辑更加合理,用户操作更流畅:
[0033]android机顶盒上原有的按键处理是使用android自带的按键响应处理算法来完成的,该算法只能通过预先定义的常规页面元素属性及关系来响应按键事件,这就决定了其只能处理比较简单的web页面,对较复杂的页面,往往无能为力,导致按键处理结果不合理,操作困难,用户体验差。
[0034]本发明中按键事件的响应处理由web页面来完成,由于web页面的设计开发者对自己页面的元素属性和关系非常了解,可以确保按键处理的合理性,并保证用户操作的流畅性。
[0035]2、在不同的android机顶盒上向用户提供一致的操作体验,避免了 web页面在不同机顶盒上的适配工作:
[0036]android自带的按键处理算法在本地android系统内部,随着android版本的不同,其算法本身也会存在差异,这就导致了不同的机顶盒浏览同一个web页面时,对遥控器按键的处理结果往往不相同,表现出来就是同一 web页面在不同机顶盒上的操作体验不一致。这也要求web页面在开发和测试的过程中需要考虑对不同机顶盒的适配问题,增加了开发和测试的工作量。
[0037]本发明中,遥控器按键的处理权从本地机顶盒移交给了云端的web页面,使得按键处理逻辑与机顶盒本地系统无关,保证了用户操作体验在任何机顶盒上都是一致的,同时无须对不同机顶盒进行web页面的适配,大大减轻了 web页面开发者的工作量。
[0038]本文中所描述的具体实施例仅仅是对本发明精神做举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
【主权项】
1.一种在android智能机顶盒上实现web页面适配遥控器按键的通用方法,其特征在于在按键处理过程中android智能机顶盒的客户端拦截遥控器按键事件,屏蔽android系统自带的按键响应算法,并将遥控器按键事件传给云端web页面,最终由web页面完成对遥控器按键事件的处理和响应。2.根据权利要求1所述的一种在android智能机顶盒上实现web页面适配遥控器按键的通用方法,其特征在于所述通用方法的具体流程为: 1)屏蔽遥控器按键的本地处理,当遥控器按键事件被送到浏览器控件webview的onKeyDown O函数时,重载onKeyDown O函数,对遥控器按键事件进行拦截,使其不再向下触发调用android系统自带的按键响应算法; 2)在onKeyDownO函数中执行一段本地JavaScript代码将当前遥控器按键的键值keyCode传给云端web页面的document对象; 3)在云端的web页面中增加按键响应处理模块,负责接收传上来的按键KeyCode,并进行处理和响应。3.根据权利要求2所述的一种在android智能机顶盒上实现web页面适配遥控器按键的通用方法,其特征在于所述web页面中按键响应处理模块的具体操作包括:首先从当前页面的document对象中获取按键的键值keyCode,然后判断对此keyCode的处理是否需要回调android本地java方法,若不需要,贝Ij直接在web页面内部完成按键响应处理;若需要执行android本地java方法,则在处理逻辑中自定义js方法,同时在机顶盒浏览器控件webview中将此js方法与本地Java方法进行关联,从而实现对android本地java方法的回调,配合完成按键响应处理。
【专利摘要】本发明公开了一种在android智能机顶盒上实现web页面适配遥控器按键的通用方法,其特征在于在按键处理过程中android智能机顶盒的客户端拦截遥控器按键事件,屏蔽android系统自带的按键响应算法,并将遥控器按键事件传给云端web页面,最终由web页面完成对遥控器按键事件的处理和响应。本发明将遥控器的按键处理权由本地android系统移交给云端web页面,使得对遥控器按键的处理更加合理,用户操作更流畅且在不同机顶盒上操作体验一致。
【IPC分类】H04N21/637, H04N21/41, H04N21/422
【公开号】CN104902298
【申请号】CN201510275947
【发明人】陈景钊, 成国强, 杨立扬
【申请人】江苏省公用信息有限公司
【公开日】2015年9月9日
【申请日】2015年5月26日