DeskGap 是一个使用 Web 技术(JavaScript、HTML 和 CSS)构建跨平台桌面应用程序的框架。
为了在保持较小尺寸的同时启用本机功能,DeskGap 捆绑了 Node.js 运行时,并将 HTML 渲染留给操作系统的 Web 视图。
macOS | 视窗 | Linux | ||
---|---|---|---|---|
版本 | 10.11+ | 7 SP1 1 - 10 版本 1803 | 10版本1809+ | 在 Ubuntu 16.04 LTS 上测试 |
渲染引擎 | 网络工具包 | 三叉戟 | 边缘HTML 2 | 网络工具包 |
npm install --save-dev deskgap
DeskGap API 演示应用程序通过交互式脚本展示了一些 DeskGap 功能和 API。
macOS | 视窗 | Linux | 源代码 |
---|---|---|---|
GitHub |
为了现场测试 DeskGap,squoosh 与 DeskGap 一起打包到桌面应用程序“Pym”中,并提交到应用程序商店。
macOS | 视窗 | 源代码 |
---|---|---|
GitHub |
hello-deskgap/
├── package.json
├── index.js
└── index.html
package.json
指向应用程序的入口文件并提供启动应用程序的脚本:
{
"name" : " hello-deskgap " ,
"main" : " index.js " ,
"scripts" : {
"start" : " deskgap . "
}
}
index.js
是创建一个窗口的入口文件,该窗口将呈现 HTML 页面:
const { app , BrowserWindow } = require ( 'deskgap' ) ;
app . once ( 'ready' , ( ) => {
const win = new BrowserWindow ( ) ;
win . loadFile ( 'index.html' ) ;
} ) ;
index.html
是要呈现的页面:
<!DOCTYPE html >
< html >
< head >
< meta charset =" utf-8 " />
< meta http-equiv =" X-UA-Compatible " content =" ie=edge " />
< title > Hello DeskGap </ title >
</ head >
< body >
< h1 > Hello DeskGap </ h1 >
</ body >
</ html >
npm install --save-dev deskgap
npm start
正在进行中的工作
DeskGap 被设计为 Electron 的更轻量级替代品。它不捆绑 Chromium 或任何其他 Web 引擎。相反,渲染 HTML 页面的能力来自操作系统提供的 webview ,具体来说,macOS 上的 WKWebView、Windows 上的 IWebBrowser2 或 WebViewControl(如果可用)以及 Linux 上的 WebKitWebView。
DeskGap 尚处于早期阶段。与 Electron 相比, API 仍然相当有限。许多功能正在开发中,其中一些可能永远无法实现。请参阅此和此以获取更多信息。
通过捆绑 Node.js 运行时,DeskGap 支持 npm 包以及 Node.js 中所有经过实战检验的本机功能,例如fs
、 net
、 http
。代价是更大的可执行文件大小(压缩后大约 8 MB,解压后大约 20 MB)。
可能不会。 DeskGap API 仍然相当有限。