electron应用更新版本后的拼写检查失效?原来一行代码就搞定
electron应用更新版本后的拼写检查失效?原来一行代码就搞定
小组的项目半个月前更新了一个小版本,然后大家纷纷问我是改了啥? 我也一脸懵逼啊,我啥以没干啊,那个小版本里面有我这边的一个紧急需求,这个“锅”我推都不好推,只能怪运气不好。
本来指望小组负责electron部分的同事来牵头解决的,虽然报障是从我复制的邮件这边开始报障的,主要是因为邮件客服比较依赖这个功能吧,功能失效了写英语也没底气了,直接报障了。 但是懂行的都知道,这个不是前端仔随便就能干预的功能,所以需要在electron层来想解决方案。
后面几天我还在码需求,改bug呢,临近发版前总算有些许闲暇,毕竟即使有无关紧要的bug也不宜再匆忙改代码了。 同事太忙也一直没时间跟进这个故障,那只能自己来了。
自己凭借个人经验开始了自己的故障定位之旅。
1、从electron官方SpellChecker模块了解到hunspell dictionary,它默认从Google CDN下载下来的。
猜测下载失败可能会影响拼写检查,了解相关知识点准备验证猜想。
2、从项目spellcheck关键词,发现有spellcheck-dictionary相关的事件
尝试在项目加入监听electron抛出的spellcheck-dictionary-download-begin、spellcheck-dictionary-download-success、spellcheck-dictionary-download-failure、spellcheck-dictionary-download-initialized等事件
发现监听到spellcheck-dictionary-download-begin和spellcheck-dictionary-download-failure,无spellcheck-dictionary-download-success、spellcheck-dictionary-download-initialized事件,确定spellcheck-dictionary的确下载失败
3、从网上搜索及electron源码了解到字典文件位于electron个人目录下的Dictionaries文件夹内,尝试在拼写检查未失效的electron应用中删除该文件,电脑提示该资源被electron应用占用,确定Dictionaries内的字典文件为electron应用使用
4、根据文档尝试setSpellCheckerDictionaryDownloadURL
干预spellcheck-dictionary的下载地址,因具体待下载的语言词典文件名信息不确定,先本地用http-server启一个服务,测试setSpellCheckerDictionaryDownloadURL
如何生效以及electron下载字典请求的url信息
在创建window时加入 newWindow.webContents.session.setSpellCheckerDictionaryDownloadURL('http://127.0.0.1:8080/');
确认本地服务器接收到electron的下载请求,并且请求url形如 http://127.0.0.1:8080//en-us-9-0.bdic
5、寻找拼写检查字典en-us-9-0.bdic文件,从其它未失效的用户电脑复制或从互联网搜索,验证字典下载能否成功
成功接收到spellcheck-dictionary-download-success、spellcheck-dictionary-download-initialized事件,同时Dictionaries文件夹内成功下载字典文件
6、mcd重新打包,再次验证上述改动
setSpellCheckerDictionaryDownloadURL
设置为能成功下载字典文件的外网url服务地址
newWindow.webContents.session.setSpellCheckerDictionaryDownloadURL('https://wp-img.daozhao.com/im_dict/');
改动后的新版安装包拼写检查功能正常
7、获取拼写检查其它语言对应的字典文件名信息
8、优化代码,正式修复
总结
大胆假设,小心求证
- 分类:
- Web前端
相关文章
记录CKEditor4删除文本引起文本分割而升级版本的经历
背景 前段时间对接了一个electron壳提供功能————拼写检查,也就是在输入的英文有问题的时候,给予红色波浪线提示,邮件的时候能出现候选词,选择候选词后进行替换。 在功能上线当天上午产品 阅读更多…
目前市面上的拼写检查工具哪家强?没有调研就没有发言权
目前市面上的含拼写检查功能产品主要分两种, 拼写检查类 和 写作助手 (支持拼写检查、语法检查、书写润色等)类。 下面分别以这两类的典型产品举例。 拼写检查类产品 一、chrome类拼写 阅读更多…
electron应用的拼写检查终于在给chromium提了issue之后,新的修复方案更好
之前提到过《 electron应用更新版本后的拼写检查失效?原来一行代码就搞定 》,问题的原因是因为官方部分语种的下载地址重定向后的cdn地址不可访问,导致国内无法下载到字典文件,并且我提议直接将 阅读更多…