中文拼音输入 - MTTTM/vue-keyboard-cn GitHub Wiki

中文拼音输入

这里的中文输入的处理方法是,导入常见的中文拼音组合,根据用户的输入来做匹配。 用户只能单个字选择,而不能直接输入一个词(接着看,下面会有更详细的说明)

用户输入场景展示

输入一个拼音,例如a

  1. 拿到词库里面a对应的所有可选字提供给用户选择,用户点击待选字后,给input发起输入事件。结束
  2. 如果用户没有点击待选字,而是点击了回车键,那给input发起输入a的事件。结束
  3. 如果用户切换其他键盘,例如数字键盘,英文键盘,直接放弃当前输入,清除字符串a

输入多个辅音字母,例如:hh

  1. 会调用分词函数,去拿到匹配的,得到[h,h]数组,待选字区域显示第一个h匹配的待选字,用户选择待选字后,
    • 把第一个h替换为已选的待选字并展示
    • 待选字区域展示第二个h的待选字
    • 最后一个h的待选字选中后,把已选的所有待选字填入input,并且清掉hh
  2. 同”输入一个拼音“的2
  3. 同”输入一个拼音“的3

输入有效的拼音组合,例如:nihao

  1. 会调用分词函数,去拿到匹配的,得到[ni,hao]数组,待选字区域显示第一个ni匹配的待选字,用户选择待选字后, a.把第一个ni替换为已选的待选字并展示 b.待选字区域展示第二个hao的待选字 c.最后一个hao的待选字选中后,把已选的所有待选字填入input,并且清掉nihao
  2. 同”输入一个拼音“的2
  3. 同”输入一个拼音“的3

输入hnihaoy

  1. 得到[h,nihao,y],处理方式如上面的情况一样
  2. 同”输入一个拼音“的2
  3. 同”输入一个拼音“的3
  4. 如果用户已经选择了部分带选词,例如[哈,你好,y],这时候回车会给input发起输入"哈你好y"的事件

热词记录

  1. 热词是针对词的,如果用户输入的是单个字,不会被记录
  2. 产生热词记录的场景,如”输入有效的拼音组合“步骤,点击hao的待选字后,会在本地存下来,并且记录 {"nihao":"你好",order:0}
  3. 下一次如果输入”nihao“ 用户选中的也是”你好“的话,order会+1
  4. 如果下一次输入"nihao",用户选中的不是"你好",那它就会产生一条新的记录
  5. 热词每七天清理一次order小于等于2的记录

词输入

  1. 这里的词输入是和热词记录有关系的
  2. 拿用户的输入拼音和热词库做匹配,如果有匹配到的(用户输入内容和热词库的key完全一样才有效),截取order大于0并且order排在前三的显示在待选区
  3. 用户选中词后,给input发起输入事件,接着情况当前用户输入