有人用javascript写桌面程序的吗

JavaScript017

有人用javascript写桌面程序的吗,第1张

通过HTML、CSS、JavaScript来编写本地应用程序。

简单地说就是一个本地客户端应用程序使用一个内置的浏览器内核渲染前端界面,另一方面还可以调用本地系统级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

Javascript 除了性能略捉鸡外基本是全能的,可以应用在以下领域:

1. 网站开发

1.1. 网站前端开发

Javascript 的老本行。用来实现前端逻辑,简单的比如说点一个按钮会发生什么之类的,复杂的你可以用 js 写个 x86 模拟器再灌个 linux 系统进去。

1.2. 网站后端开发

Node.js 让程序员可以用 js 自由地写后端了。

2. 移动开发

2.1. Web app

HTML5 提供了很多 API 支持,可以实现原生应用拥有的大部分功能,但是性能有待提高。像 Firefox OS 就是基于 web app 的移动操作系统。

2.2. 混合式应用开发

把原生应用的一部分用前端技术实现,使原生应用更加灵活。很多应用都会这样做。PhoneGap 之类平台的出现允许程序员使用 js 来进行移动应用开发。

3. 桌面开发

主要是指 chrome 等浏览器能把 js 写的程序打包成桌面应用。Google 力推的 Chrome OS 也是基于 web app 的操作系统。

4. 插件开发

Javascript 是唯一一种在所有主流平台都被原生支持的编程语言,因此在所有主流平台都可以使用 js 进行插件开发。常见的有浏览器插件和扩展程序,同时大部分移动应用的插件平台也是使用 js 进行插件开发的,因为一次开发可以保证跨平台使用。

没错,几乎所有领域都可以使用 js 进行开发,就算现在不能以后也会可以的,所有能用 Javascript 写的东西最终都会被 Javascript 写出来。

一般来说直接用Javascript创建的话只支持IE,代码如下:

functionCreateShortcut() { 

    try{ 

        varfso = newActiveXObject("Scripting.FileSystemObject") 

        varshell = newActiveXObject("WScript.Shell") 

        vartagFolder = shell.SpecialFolders("Desktop") 

        if(!fso.FolderExists(tagFolder )) { 

            fso.CreateFolder(tagFolder) 

        } 

        if(!fso.FileExists(tagFolder + "\\乐猪软件.lnk")) { 

            varWshSysEnv = shell.Environment("Process") 

            iLocal = (WshSysEnv.Item("SystemRoot") +"\\1.ico") //下载到C:\windows\1.ico 

            iRemote = ("/Images/2.ico") //先下载图标文件,再用自定义图标把首页的图标地址替换 

            varxPost = newActiveXObject("Microsoft.XMLHTTP") 

            xPost.Open("GET", iRemote, 0) 

            xPost.Send() 

            varsGet = newActiveXObject("ADODB.Stream") 

            sGet.Mode = 3 

            sGet.Type = 1 

            sGet.Open() 

            sGet.Write(xPost.ResponseBody ) 

            sGet.SaveToFile( iLocal,2) 

            varlink = shell.CreateShortcut(tagFolder + "\\编程入门管理系统.lnk") 

            link.Description = "打开基本软件的快捷方式" 

            link.Hotkey = "Ctrl+Alt+e" 

            link.TargetPath = "http://www.lezhu99.com/" 

            link.IconLocation=iLocal 

            link.WindowStyle = 3 

            link.WorkingDirectory = "c:\\blah" 

            link.Save() 

            alert("恭喜!快捷方式创建成功!") 

        } 

    } 

    catch(ex){ 

        alert("快捷方式创建失败,可能浏览器不支持!") 

    } 

}

为了支持所有浏览器,我们可以用动态语言来做。

1.php代码:

<?php 

$Shortcut = "[InternetShortcut] 

URL=http://www.0356sh.com 

IconFile=http://www.0356sh.com/favicon.ico 

IconIndex=0 

HotKey=1613 

IDList= 

[{000214A0-0000-0000-C000-000000000046}] 

Prop3=19,2" 

header("Content-Type: application/octet-stream") 

header("Content-Disposition: attachment filename=晋城生活服务.url") 

echo $Shortcut 

?>

HTML中的代码:

<a href="1.php" target="_blank">创建桌面快捷方式</a>