基于阿里钉钉网页版制作绿色版客户端

由于工作需要必须使用阿里钉钉这个聊天软件.

但随着版本更新,疯狂添加新功能,体积越来越大,无法忍受.

因此寻求体积小巧,绿色便携的PC客户端.

在下载了无数个钉钉旧版本之后,可以发现一些钉钉软件的发展历程……

最初钉钉把主要功能都在网页版上面实现.

早期的客户端都是基于网页版制作的.客户端使用nw.js把网页封装成为客户端.

后来V2.X版本核心还是nw.js但是把网页版变成了离线版(把网页版的js和css保存在本地).

后来V3.X版本开始,开发了一套rvwindow实现了本地化的GUI窗口,但核心逻辑还是js和css.

再到V4.X又重新开发了一套新的GUI,重构了整个程序框架,已经看不到网页版的影子了.

由于目前钉钉网页版还能正常使用.虽然可以用chrome直接打开,但是经常要浏览网页,一不小心就把它关闭了.

所以利用早期版本的node-webkit来包装一个网页客户端.

nw.js也就是node-webkit,它的核心是一个浏览器.可以通过package.json进行一行配置.

package.json里面有自定义user-agent,定义了nw版本,WEB端用来识别这是客户端还是浏览器.

因此可以提取出nw.js的核心文件,删除无用的文件.

再修改package.json

把user-agent修改为标准浏览器.

把启动页面修改到钉钉网页版.

再添加一行参数–user-data-dir=Data把浏览器缓存数据设置到本地路径.

这样启动DingTalk.exe就可以看到钉钉登陆界面了!.

只要网页版还能正常使用,这个"假"客户端就能继续使用.

{
  "name": "DingTalk",
  "version": "4.0.0",
  "main": "https://im.dingtalk.com",
  "chromium-args":"--disable-gpu --disable-directwrite-for-ui --user-data-dir=Data",
  "user-agent": "Mozilla/5.0 (%osinfo) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%webkit_ver Safari/537.36",
  "window": {
	"icon": "logo.ico",
	"frame" :true,
    "min_width": 1000,
    "min_height": 600,
    "width": 1000,
    "height": 600,
    "resizable": false,
	"toolbar":true,
    "transparent" : false
  },
  "webkit": {
    "plugin": false,
    "page-cache" : false
  },
  "dependencies":{
  }
}