注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一路

To find the final symmetry & beauty

 
 
 

日志

 
 
 
 

介绍几种可以集成Webkit开发应用程序的框架  

2014-07-15 01:58:57|  分类: 共享 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
现代客户端软件开发和几年之前已经完全不一样了,用户需要的是可以快速开发好的APP同时又可以方便快捷的方便应用程序升级和BUG的修正,同时应用程序的稳定性要求也越来越高。现在电脑性能完全过剩,不像前些年对软件的资源消耗有严格的限制,那么现在很多软件开发都走起了使用浏览器内核继承到应用程序中,使用浏览器已经有的功能为用户提供界面操作之类的功能,同是不能由Web完成的功能则用Native本地代码的方式实现,同时实现JS和本地代码接口的互相调用,这样就互补了优势,一般界面或是小BUG的修复,只要在线升级JS,HTML,CSS文件就可以了,只有硬性的功能升级才需要更新软件包。同时现代的Webkit和JS引擎都提供了十分优秀的性能,跑这样的程序完成不成问题。
一、Qt
Qt4,Qt5都集成了原生的Webkit内核,并为它提供了十分优秀的JS与Native接口互操作的信号-槽方式的接口称为QtWebkit Bridge,更新Native模块之后JS甚至可以判断自己运行的Native接口的环境,并做到向前兼容。因为Qt本身是跨平台的框架,因此使用它你的应用做到跨平台也不是难事。
Qt继承的Webkit模块在Qt中称为QtWebkit,网址如下
http://qt-project.org/wiki/QtWebKit
Qt的Webkit和JS有一些小的BUG,一般不会影响到使用,有实力并有相关需要的朋友可以自行修复BUG并重新编译Qt就好了。
QtWebkit Bridge使用非常简单,用户自定义的类,继承自QObject, 使用如下方式就可以将它安装在网页中,当网页重新加载时对象会自动重新加载,十分方便。
 // ...
     QWebFrame *frame = myWebPage->mainFrame();
     frame->addToJavaScriptWindowObject("someNameForMyObject", myObject);
     // ...
具体的操作方法参见QtWebkit Bridge的相关文档
http://docs.huihoo.com/qt/4.7/qtwebkit-bridge.html
因为Qt本身支持窗口后台特性,因此QtWebkit也支持十分可贵的后台渲染和操作特性,而不必一定将窗口内容显示给用户。
二、OpenWebkitSharp
OpenWebkitSharp是由项目Webkit.Net发展而来,现在还在积极开发中。它是将Webkit内核绑定到C#环境中,做为一个WinForm的控件使用,也提供了足够使用的接口,目前OpenWebkitSharp没的提供从JS环境调用本地C#方法的接口,不过估计未来的版本必然会提供此功能。不过C#的.Net环境本身提供了ObjectForScripting接口供JS代码来操作本地C#代码,但是这个JS环境不是运行在Webkit之中的了,而是运行在IE控件中,不过一般问题不大。
项目网址是http://code.google.com/p/open-webkit-sharp
使用它快速上手问题不大,本地用它来开发一个相对效大的程序,可能会遇到一些困难,不过一般都可以解决,毕竟 .net开发还是非常简单的。
下面是他们基本OpenWebkitSharp开发的一个浏览器,有时间的朋友可以去玩一下
http://gt-web-software.webs.com/
CEF应该是集成Webkit最复杂也最为各大厂商广泛使用的解决方案,它集成了Chrome本身,可以方便的集成到Windows各种已有的开发框架之中,比如ATL,MFC,WxWidget之中,当然它是也是可以非常方便的集成到Linux和MacOS的开发框架之中,真正做到你的应用可以跨平台
下面列举一下一些大名鼎鼎的使用CEF的项目
1. 网易云音乐Windows客户端
http://music.163.com/
2. EverNote 的Windows和MacOS客户端
http://www.yinxiang.com/?from=evernote
3. Battle.net 战网客户端
http://us.battle.net/account/download/
4. Stream 游戏平台客户端
http://store.steampowered.com/
5. Adobe Dreamweaver CC
http://code.google.com/p/chromiumembedded/
CEF有一个重要的特性,就是OSR,这个特性可以让网页直接渲染到内存中的位图之上而不不显示出来,其中也包括鼠标和键盘事件也做到后台渲染,这对于一些特别的应用程序非常有用,比如在3D游戏中使用网页显示内容,制作一些集成测试工具等。
  评论这张
 
阅读(1896)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017