Windows7下ELectron应用的Input输入框在拼音输入中的失焦问题?
Windows7下ELectron应用的Input输入框在拼音输入中的失焦问题主要是为了解决虚拟键盘(使用的simple-keyboard)的拼音输入问题(Windows自带的虚拟键盘因为不够方便和美观,所以没有采用;simple-keyboard其实也支持拼音输入,但是更不好用),最后决定通过Koffi(ffi,ffi-napi)调用user32.dll,模拟键盘输入,用系统装的第三方输入法实现。在Windows10及以上,是没什么问题的,但是在Windows7下,会出现拼音输入框一闪而逝的问题(具体表现就是输入第一个字母的时候,输入框附近出现的候选框闪一下,就没了,此时如果按键盘的空格键,还是能选中的),不能正常进行拼音输入。初步判断是点击虚拟按键的时候,输入框失焦了。
- 换过几种常见的输入法,包括百度,搜狗,QQ等,结果略有差异,但是都不正常;
- 如果使用Pointer事件(preventDefault),结果就是上面说的,输入第一个字母的时候,拼音候选框就会闪一下然后消失;
- 如果使用click事件(preventDefault),只能输入一个字母,就是第一个字母的时候,候选框正常,但是继续输第二个字母的时候,候选框还是只有当前第二次输入的这个字母,第一个字母变为字母输入到Input中,这里会触发input的blur事件;
- 使用mousedown事件,倒是不触发blur了,但是结果跟第二点一样。
我对user32只是略有理解,然后为什么windows7.windows10下,输入法表现不一样也不知道。期望有在electron下有比较舒适的拼音输入方法(windows7 限定),谢谢各位!
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容