Web桌面應用框架2:著名的WEB桌面應用分析

分類:IT技術 時間:2017-09-11

 

前一篇文章裏,分析了包括NW.js和electron這種純JS框架在內的幾種Web桌面應用開發方式,實際上還有一種最古老的方式,那就是嵌入WebView的方式。

嵌入WebView的方式和整個程序都是WEB窗口不同,僅在窗口的部分子窗口使用WebView,和原生UI或DirectUI結合的方式。

這種在C/C++程序裏嵌入WebView的方式,由於沒有一種公認、通用的框架或方法,基本是最困難和最原始的方式蠻幹,或者自研平臺,難以公開。但是也有很多效果很棒,很著名的軟件。那麽下面我們來細數一下這些桌面應用。

  

一、HTMLayout與sciter

HTMLayout是Web桌面應用平臺裏面的資深者。不開源,很小,不到1M大小(應該是加殼壓縮了,實際3M多)。應該是作者原創的HTML引擎。一開始限制很多,後繼者sciter強大了很多。6M大小。支持全平臺開發,包括APP。因為不開源,所以網絡影響不是很大,都是企業用戶使用。

HTMLayout與sciter有一堆大名鼎鼎的用戶,國內的有遨遊maxthon瀏覽器,搜狐和360等。

 

二、QQ:

最新版的QQ裏面,帶了libcef3.dll,不到30M的體積,剪裁得不錯。控制腳本用得是Lua。

資料打了包,在包裏有XML,HTML,LUA。看來是DirectUI和WEB混合開發。在頁面中使用WebCtrl,混合使用。

<UI>
<Window name="MedalWall" config="MedalWallWndConfig" location="50, 50" clientAreaSize="700,470" titleText="$@this:MedalWallWndCaption" fixSize="true" showMaxButton="false">
<!--<WebCtrl config="webkit" sizeAsParent="true" name="MedalWallPage" />-->
<Frame size="700,470">
<background>
<Brush clrFrom="0xFFFFFFFF"/>
</background>
</Frame>
</Window>
</UI>

 

三、豌豆莢

豌豆夾裏帶了libcef.dll,大概38M大小,也帶了lua51.dll,不過現在還51是不是有點過時了,lua5.2 5.3都有很大的改進。

豌豆夾以前開源的OneRing項目也沒有了下文,程序裏也看不到OneRing的痕跡了,應該是改頭換面了。

資源打了包。其全部頁面都不支持右鍵菜單,應該都是WEB的。雖然沒有使用混合界面,但和C++程序結合緊密,應該也還是有些貨的。

 

 

四、酷狗

有意思是的,酷狗的libcef.dll改名為infra.dll,40M大小

酷狗的資源打包成獨立文件,XML格式,估計是DirectUI與Web結合的方式

<Forms>
<OnekeyBackupPrompt Name="OnekeyBackupPrompt" RelativePosition="0,0,0,0" Anchors="left,top,right,bottom">
<Image Name="OnekeyBackupPromptBackground" Anchors="left,top,right,bottom" RelativePosition="-20,-20,-20,-20" Bitmap="PlaylistAddMark.png"/>
<Image Name="OnekeyBackupPromptLogo" Anchors="" RelativePosition="0,-34,122,70" Bitmap="onekey_backup_animation.png"/>
<Label Name="OnekeyBackupPromptTips" Anchors="" RelativePosition="-30,27,90,16"/>
<Label Name="OnekeyBackupPromptCancel" Anchors="" RelativePosition="51,28,52,16"/>
</OnekeyBackupPrompt>
</Forms>

在“AppData\Roaming\KuGou8\WebCache”目錄裏,發現有解壓後的資源,的確是HTML頁面,證實使用了Web應用技術。

只是各個版本的垃圾資源信息能不能清理一下,難怪越來越大。

 在“AppData\Roaming\KuGou8\AppStore”目錄發現在程序裏面有sciter32.dll,看來也是sciter的用戶。

 

五、Duilib,soui2,DuiVision與WKE

Duilib,soui2,DuiVision是國內著名開源DirectUI庫,裏面都內置了WKE引擎。

WKE是基於WebKit的精簡,優點是足夠小,11M大小。但是缺點是夠老和BUG多。

因為相關開源庫的DirectUI技術本身就是與WEB桌面應用相似的技術,基於XML開發界面。

所以很少人用WKE開發WEB桌面應用,基於WKE的WEB桌面應用還處在比較原始的階段。

WKE的傳送門GitHub - BlzFans/wke

而號稱史上最小chromium內核的miniblink,已經開源了,不知道如何。

作者比較活躍,給個傳送門吧:GitHub - weolar/miniblink49

 

總結:

Web桌面應用框架總得來說,要麽難,要麽弱,要麽限制多。

雖然前端一直在推崇JS全棧,但是我覺得還是多語言配合更有利。

理想中的框架要這樣:核心算法能編譯+能與GUI框架結合+WEB只負責界面部分+有開源實現

golang+libui+cef+http+新框架,可能是個不錯的結合。

 

 (完)

  


Tags: quot 方式 桌面 WebView 應用 使用

文章來源:


ads
ads

相關文章
ads

相關文章

ad