前一篇文章中记录在开发基于chromium输入法过程中对chromium IME模块的学习和使用,由于目前比较特殊需求环境,在chromium IME的基础之上,为其开发了一款输入法框架,该框架的功能相对于PC来说比较简单,但能够实现需求。
由于是为chromium IME定制,所以当前还不能具备跨平台的能力,该框架主要分为几个部分:
1、事件处理模块,该模块用来接收chromium 的事件,是参考chromium IME的机制实现的,即将该模块注册到chromium PlatformEventSource的 dispatcher 列表中,并且要保证是第一个dispatcher,目的就是首先接收Event,若当前的Event是需要的输入的Event,那么将对其进行处理,也就是通过该事件的key或者其他类型信息,进行输入,事件传递就此结束;若不是输入Event,则返回,交给其他的disptacher处理;
2、嵌入事件处理的IPC通信线程,用来与外接的输入法引擎进行交互,向引擎传递输入内容,从引擎获取查询结果;
3、外接输入法引擎,是一个独立于chromium之外的进程,与上述的IPC通信线程进行通信,接受输入内容,送出查询结果;
4、候选框,CandidateView,该候选框嵌入到OSK中,使用chromium 的Aura UI 实现。
后面详加。。。。。。