### iPanel浏览器EVENT处理说明详解 #### 一、iPanel浏览器EVENT处理原则 根据文档中的说明,iPanel浏览器处理EVENT遵循以下两个基本原则: 1. **灵活性原则**:iPanel尽可能多地将EVENT交给HTML页面、JavaScript以及Java虚拟机(JVM)进行处理。这样做的目的是为了增加对EVENT控制的灵活性。通过这种方式,开发者可以根据实际需要更自由地定制EVENT的行为。 2. **回传原则**:对于那些iPanel本身无法或不需要处理的EVENT,尽可能将其传递回Porting层。这为底层提供了更大的灵活性来处理这些EVENT,从而满足特定场景下的需求。 #### 二、iPanel浏览器EVENT处理机制 iPanel浏览器的EVENT处理机制主要分为以下几个方面: 1. **系统按键处理**:iPanel负责处理特定的系统按键,例如输入法切换键(EIS_IRKEY_IME)、大小写切换键(EIS_IRKEY_SWITCH)以及中英文切换键(EIS_IRKEY_LANGUAGE)等。 2. **不处理的按键**:iPanel不会处理一些特定的按键,比如电源键(EIS_IRKEY_POWER)、上一个频道键(EIS_IRKEY_LAST_CHANNEL)、音量调节键(EIS_IRKEY_VOLUME_UP/DOWN/MUTE)、显示主菜单键(EIS_IRKEY_MENU)、频道切换键(EIS_IRKEY_CHANNEL_UP/DOWN)、显示帮助信息键(EIS_IRKEY_HELP)以及显示主页键(EIS_IRKEY_HOMEPAGE)等。这些按键通常与系统级别的操作相关,由操作系统或其他组件处理。 3. **HTML页面和JavaScript处理流程**:当处理由JavaScript捕获的EVENT时,iPanel会根据返回值决定是否进一步处理该EVENT。如果返回值为0/false,则iPanel不会进行任何处理,也不会将EVENT传递给Porting层;如果返回值为1/true或没有返回值,则iPanel会执行其默认行为,并且不会将EVENT传递给Porting层。对于那些没有被HTML页面或JavaScript处理的EVENT,iPanel会对其进行处理,或者将其传递给Porting层进行后续处理。 - **处理流程**: 1. 打开HTML页面后,首先判断页面中的JavaScript是否捕获了EVENT。 2. 如果在页面中有HTML对象捕获到了EVENT,则立即将其销毁。 3. 对于页面中未处理的EVENT和JavaScript过滤后的EVENT,iPanel将对其进行处理。 4. 处理JavaScript捕获的EVENT时,根据返回值决定是否执行iPanel的默认功能,或者将EVENT传给Porting层。 #### 三、按键处理Porting接口 为了支持底层对未处理的EVENT进行处理,iPanel提供了一个Porting接口`ipanel_porting_event_unprocessed`,该接口允许iPanel将未处理的事件传递给底层进行处理。接口定义如下: ```c int ipanel_porting_event_unprocessed(unsigned int msg, unsigned int p1, unsigned int p2) ``` - **功能说明**:此接口用于将Browser及页面都未处理的事件传递给底层处理。 - **参数说明**: - 输入参数: - `msg`: 消息类型。 - `p1`: 第一个消息参数。 - `p2`: 第二个消息参数。 - **返回值**:该接口总是返回0。 #### 四、电信规范按键需求处理列表 针对电信规范中定义的按键需求,文档提到了一些具体的按键及其处理方式: - **KEY_BACK**: 返回/删除 - **KEY_ENTER**: 确定 - **KEY_SPACEBAR**: 空格 - **KEY_PAGE**: 对于这些按键,文档中提到当遥控器事件类型为`EIS_EVENT_TYPE_IRKEY=7`或`EIS_EVENT_TYPE_KEYDOWN=16`时,iPanel将按照电信规范的要求进行处理。例如,对于`KEY_BACK`键,iPanel会执行返回或删除的操作;对于`KEY_ENTER`键,iPanel则执行确认操作。 通过以上详细的解析,我们可以看到iPanel浏览器对于EVENT的处理是非常灵活且细致的,旨在满足不同应用场景的需求,同时确保开发者的自主性和系统的可控性。
剩余7页未读,继续阅读
- 粉丝: 2
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
- 3
前往页