简单地说就是一个本地客户端应用程序使用一个内置的浏览器内核渲染前端界面,另一方面还可以调用本地系统级API,实现本地应用程序的各种功能。
使用该技术的部分产品:
网易云音乐PC客户端
有道词典PC客户端 (基于heX)
Atom文本编辑器 (基于Electron)
Visual Studio Code编辑器 (基于Electron)
相关技术
C++ / CEF
https://bitbucket.org/chromiumembedded/cef
CEF (Chromium Embedded Framework)
谷歌浏览器嵌入式框架,即谷歌浏览器内核,配合C++使用。
Electron
http://electron.atom.io/
Electron基于Node.js,使用javascript编程。
个人对Node.js的理解
Node.js是一个JavaScript 解释器,是类似Python的东西
Node.js使用JavaScript语言,Python使用Python语言
Node.js常用于编写Web服务器(使用http等模块)
Python也有类似的框架,比如Django
NW.js
NW.js 原名 node-webkit
基于 Chromium 和 Node.js
heX
heX是有道发起的开源项目
基于开源项目 CEF,它内部整合了开源项目 Chromium 及 Node.JS
一般情况下,浏览器中是无法直接和本机的其他的程序进行交互的,在IE中,我们可以通过ActiveX对象的方式进行。但是这个方式只适用于IE浏览器,另一种比较通用的方式便是URL协议的方式,我们将某种URL的协议注册给某个程序来进行处理,比如将tencent://这样的协议注册给QQ程序来进行处理,当浏览器需要访问这样的协议的时候就转给QQ程序进行处理。这种URL协议的方式是可以跨平台的,比如在Windows上你需要添加注册表项。
首先先看看js应该如何调用qq客户端。
window .open(" tencent://message/?uin=346915968 ")
window.open顾名思义,打开。Tencent就不用多说了吧 BAT之T。上述能直接打开qq帐号对应的对话框。由此可以知道网页上的在线客服功能是如何实现了吧。
那要是不需要打开对话框,就想要登陆qq应该如何实现呢?很简单呀:
window .open(" tencent://message/?uin=qq ") 不过调用应用这种跟黑客没什么差别的行为,浏览器一般都是禁止的,
选择允许后,
启动应用,qq客户端就会被调起。
为什么说这个呢,老板又给了个需求,想让调起qq客户端一样,想通过演示页面的一个按钮,调起售票系统的各种程序...
什么都不说了,先看看什么是自定义协议。
Pluggable Protocol,又叫URL Protocol,有时会叫Shell命令,通用的Protocol有http、ftp、mailto等,这些都是windows安装时自带的协议。
接着也实现一个简单的自己的自定义协议吧。
1,运行window,输入regedit打开注册表。 在HKEY_CLASSES_ROOT下面建一个自己起的名字的表。
用如下格式把各项值添上:
js打开qq音乐.exe
启动应用
end.