在浏览器之外运行JavaScript应用程序

20

我有几个小部件,用基本的JavaScript和HTML编写,可以在浏览器中运行。它们是带有空白背景和CPU使用率等小工具。

我最初开发这些工具是为了作为网站视图组件存在于网页上。是否有一种方法可以将它们从Chrome等浏览器之外引入,并让我的CPU使用率应用程序覆盖我的桌面,以便我仍然可以看到像播放电影或玩游戏时的内容?甚至启动一个仅运行为桌面应用程序的JavaScript程序?

只要我可以在桌面上拥有此应用程序或作为独立的Node.js应用程序运行,就可以依赖浏览器。这怎么做呢?我最近听说像Discord这样的桌面应用程序通过语音通信在游戏中进行类似操作。


9
只是好奇……你如何用JavaScript获取CPU使用统计数据? - zgood
线程池是更多的估算而不是真实值。 - Travis Tubbs
为什么不直接最小化这些浏览器窗口呢? - Arif Burhan
2个回答

29
作为一个网站,答案是否定的。但是您可以创建一个Node应用程序,它可以作为普通可执行文件运行。
我相信SpotifySlack(在撰写本文时)是Node封装应用程序的很好的例子。
几个选项:
这些项目在Github上有一些严重的星标计数。 Electron Electron框架允许您使用JavaScript、HTML和CSS编写跨平台桌面应用程序。它基于Node.js和Chromium。
Github的Atom编辑器就是使用Electron构建的。 Slack也使用了Electron。 Electron的官方网站 node-webkit NW.js是一个基于Chromium和node.js的应用程序运行时。您可以使用NW.js在HTML和JavaScript中编写本机应用程序。它还允许您直接从DOM调用Node.js模块,并使用所有Web技术以全新的方式编写本机应用程序。
非官方的Facebook Messenger for Desktop是使用node-webkit构建的。
其他酷项目:
- AppJS - Sciter - TideSDK

2
我想知道它们两个是否支持透明背景?编辑:答案是是的 - mpen
嗯...非常有趣...我下载并运行了 Electron,这是一个相当不错的小工具。一个很棒的想法是因为智能电视应用程序只是一些小型网络应用程序,你可以制作覆盖在电视上的应用程序(通过简单地设置透明背景)。使用Electron可以实现同样的效果吗? - Travis Tubbs
1
@TravisTubbs 如果你写了关于这个的博客,我会很感兴趣去阅读。这将是一个非常有趣的用例。但我不确定它如何工作,因为我从未进行过任何与电视相关的开发。 - MrHaze
1
电视开发的问题在于缺乏一个共同平台,这使得它成为一个巨大的头痛。随着有线电视盒子的放松管制即将到来,我正在开发一个小型Linux盒子的原型,以便在电视上使用Web应用程序时拥有一个共同的开发环境。我喜欢这样的电子硬件端。 - Travis Tubbs
1
只是想在几年后跟进一下这个话题。Electron 已经非常成熟了。它由 Github 制作,有几个应用程序使用它,其中一个包括 Discord(VOIP 程序)。我现在使用 Electron,它非常适合解决我提出的这个问题! - Travis Tubbs

11

请查看 Sciter,它是专为桌面应用程序设计的可嵌入HTML/CSS UI引擎。

然而,它支持透明的HTML窗口和窗口化的HTML弹出元素:

Sciter transparent HTML windows

请查看Sciter技术介绍文章.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接