通過(guò)HTML、CSS、JavaScript來(lái)編寫本地應(yīng)用程序。
創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),提供網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,建網(wǎng)站,定制網(wǎng)站開(kāi)發(fā),網(wǎng)站開(kāi)發(fā)公司,于2013年開(kāi)始是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價(jià)值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計(jì)制作,前端開(kāi)發(fā),后臺(tái)程序制作以及后期項(xiàng)目運(yùn)營(yíng)并提出專業(yè)建議和思路。
簡(jiǎn)單地說(shuō)就是一個(gè)本地客戶端應(yīng)用程序使用一個(gè)內(nèi)置的瀏覽器內(nèi)核渲染前端界面,另一方面還可以調(diào)用本地系統(tǒng)級(jí)API,實(shí)現(xiàn)本地應(yīng)用程序的各種功能。
使用該技術(shù)的部分產(chǎn)品:
網(wǎng)易云音樂(lè)PC客戶端
有道詞典PC客戶端 (基于heX)
Atom文本編輯器 (基于Electron)
Visual Studio Code編輯器 (基于Electron)
相關(guān)技術(shù)
C++ / CEF
CEF (Chromium Embedded Framework)
谷歌瀏覽器嵌入式框架,即谷歌瀏覽器內(nèi)核,配合C++使用。
Electron
Electron基于Node.js,使用javascript編程。
個(gè)人對(duì)Node.js的理解
Node.js是一個(gè)JavaScript 解釋器,是類似Python的東西
Node.js使用JavaScript語(yǔ)言,Python使用Python語(yǔ)言
Node.js常用于編寫Web服務(wù)器(使用http等模塊)
Python也有類似的框架,比如Django
NW.js
NW.js 原名 node-webkit
基于 Chromium 和 Node.js
heX
heX是有道發(fā)起的開(kāi)源項(xiàng)目
基于開(kāi)源項(xiàng)目 CEF,它內(nèi)部整合了開(kāi)源項(xiàng)目 Chromium 及 Node.JS
可以的。
使用javascript構(gòu)建本地程序一般需要如下環(huán)境:一個(gè)js引擎,一個(gè)界面工具。
js引擎:目前都是用nodejs,nodejs是基于chromev8封裝的一個(gè)本地js解析器。
界面工具:既然是本地程序,一般都需要界面,這里界面工具都是選擇某種瀏覽器封裝。比較流行的是基于chromium進(jìn)行封裝。
-----------------------------------------------------------
好消息是目前已經(jīng)有比較完美的封裝了,比如electron封裝了本地化的引擎和界面工具。
微軟的Visual Studio Code就是基于electron開(kāi)發(fā)的。
你應(yīng)該做的不是運(yùn)行js而是模擬js行為。期望運(yùn)行js來(lái)完成你的功能這個(gè)想法本身就存在問(wèn)題,所以即使能用類似SpiderMonkey來(lái)運(yùn)行js,也與你的目的相去甚遠(yuǎn)。因?yàn)樵瓉?lái)的js運(yùn)行在瀏覽器上,寄生于瀏覽器這個(gè)環(huán)境之上,而python運(yùn)行在本地。要實(shí)現(xiàn)你的功能,首先要分析js的行為,用瀏覽器調(diào)試工具,或抓包工具分析中間是怎么通信的,然后用python模擬js的行為,發(fā)送http請(qǐng)求。
最后提醒你一下,有道的這段js不是一次性獲取全部網(wǎng)頁(yè),而是先解析,再每個(gè)詞發(fā)送,如果你只是要找出難詞,就很有必要研究一下有道的js是是怎么解析得到難詞的。