HT for Web嵌入QtWebKit的客户端解决方案

HT for Web嵌入QtWebKit的客户端解决方案

HTML5已经足够强大,但很多应用还是需要独立桌面客户端的解决方案,毕竟能操作本地文件等功能还是很多工具类软件短期内无法完全采用云方案替代。

hero

最近Adobe发布的http://brackets.io也是类似的应用,Brackets这样描述自己:An open source code editor for the web, written in JavaScript, HTML and CSS. 这样的描述在过去很难想象居然是编辑器的工具,如今采用WebKit嵌套各种壳的方案已让这类应用成为主流。

Adobe的Brackets采用的是自家的https://github.com/adobe/brackets-shell/套壳框架,不过brackets-shell仅为Brackets量身定做,并不建议一般应用使用:

Note: The brackets-shell is only maintained for use by the Brackets project. Although some people have definitely had success using it as an app shell for other projects, we don’t provide any official support for that and we haven’t done a ton of work to make the app shell easily reusable. Many people will likely find it easier to use a project like node-webkit, which is more generic by design.

一般应用采用https://github.com/rogerwang/node-webkitHT for Web自然也能通过node-webkit打包成客户端应用程序,如下图所示:

22

最近遇到用户通过Qt将HT for Web嵌入QtWebKit的解决方案,但遇到了显示正常但无法鼠标操作的奇怪问题,经过一番折腾才发现HT居然把QtWebKit在桌面的环境,错误的识别为可Touch的移动终端环境,如何正确判断Touch和Mouse的交互环境是非常狗血的事情,可参考http://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript/4819886#4819886 加上如今window8的即可touch又可mouse让问题更加复杂化。

还好HT预留了可配置的方案,通过在引入ht.js包之前设置htconfig = {Default: {isTouchable:false}};强制HT采用常规的mouse事件进行处理。因为HT内部简单采用”ontouchend” in document的方案来判断,一般情况下桌面环境该值为undefined,移动终端为null,而QtWebKit居然在桌面环境下也为null,结果HT采用了Touch的监听事件从而导致了无法操作的现象,通过htconfig的设置后一切就正常了!

Screen Shot 2014-11-14 at 12.11.54 AM

HTML5通过WebKit嵌入打包成本地应用已经不是新鲜事了,整个世界的各种客户端技术正在变得更加融合,无数种千奇百怪的客户端方案正在改变很多观点和架构,不久前的wwdc2014中的JavaScript for Automation我觉得是被严重忽略的亮点,整个mac osx系统和应用程序都可通过JavaScrpit进行调用,早期window得利于众多应用软件而普及,苹果在站稳了移动终端后,借助诸如JavaScript for Automation的动作吸引更多专业客户端开发者,也许会不知不觉在桌面领域翻盘。

Screen Shot 2014-11-14 at 1.27.25 AM

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109656.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最佳的idea注释模板

    最佳的idea注释模板1 class 和 interface 注释 主键注释行代码 Description TODO Author USER Date DATE TIME Version 1 0 创建新 class 后会自动生成注释 如果碰到以前的 class 没有注释 从下面模板中添加快捷键方式 2 快捷键给 class 生成注释 这里的 mygroup 是我新建的 templategrou group 里面是同样从这个 新建的两个模板 分别是

    2025年11月14日
    7
  • cmd命令 拷贝某文件夹及其子文件夹文件到其它文件夹

    cmd命令 拷贝某文件夹及其子文件夹文件到其它文件夹

    2022年1月28日
    59
  • sql error 904_mysql报2005错误

    sql error 904_mysql报2005错误mysql清除relay-log文件方法详解mysql清除relay-log文件方法详解今天在本机的mysql数据目录下发现了许多类似hostname-relay-bin.0000*的文件,该文件一般是在mysqlslave实例上存在。主要用途是记录主从同步的信息,正常情况下会自动删除的。本机未配置过master、slave,…文章白及882016-02-245754浏览量exp导出出现…

    2022年9月20日
    5
  • Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级

    Nginx的启动、停止、重启和信号控制以及平滑升级

    2022年2月26日
    64
  • H3C交换机常用命令大全

    H3C交换机常用命令大全一.用户配置:system-view[H3C]superpasswordH3C设置用户分级密码[H3C]undosuperpassword删除用户分级密码[H3C]localuserbigheap1234561Web网管用户设置,1(缺省)为管理级用户,缺省admin,admin[H3C]undolocaluserbigheap删…

    2022年6月20日
    34
  • 新手到黑客的最全入门路径图(附全部学习资料下载)!

    新手到黑客的最全入门路径图(附全部学习资料下载)!点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事01入门介绍说到黑客,大家可能觉得很神秘,其实狭义上的黑客就是去寻找网站、系统、软件等漏洞,刚入门的黑客大部分从事渗透工作,而渗透大部分属于web安全方向,就是利用漏洞来取得一些数据或达到控制,让对方程序崩溃等效果。02一些常用的名词解释挖洞的话,就相当于在程序中查找漏洞,举一个不大恰当但容易理解的比喻,就像韩非子说所的那个

    2022年6月11日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号