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

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

最近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打包成客户端应用程序,如下图所示:

最近遇到用户通过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的设置后一切就正常了!

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hightopo

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

852
来自专栏iOS开发笔记

iOS开发之-调用系统打电话功能

调用系统打电话功能有点简单,不需要遵守协议和代理什么的,直接在执行打电话的方法里写上几句代码就可以了

813
来自专栏无原型不设计

格式刷的一小步,原型工具的一大步

作为一个常用功能,简单、快速、易用的格式刷是我们评价一款原型工具的试金石。在原型设计中,使用样式管理是设计师、PM掌控整个项目外观的最优捷径,通过使用格式刷“...

2684
来自专栏IT笔记

Nginx学习之配置RTMP模块搭建推流服务

写在开始 小程序升级实时音视频录制及播放能力,开放 Wi-Fi、NFC(HCE) 等硬件连接功能。同时提供按需加载、自定义组件和更多访问层级等新特性,增强了第三...

52411
来自专栏码神联盟

碎片化 | 第五阶段-01-公司类型和项目类型介绍-视频

如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/c05007f85s3.html 公司类型、项目的类型 ?

3239
来自专栏Core Net

懒人的小技巧, 批处理修改IP

5437
来自专栏互联网杂技

HTML5干货』响应式布局的设计方法和响应式前端优化

作为一名优秀的web前端人员,不懂响应式布局怎么可以呢? 今天跟大家分享web前端开发和设计的干货。关于响应式布局的设计方法和响应式前端优化。 我们都知道,目...

35812
来自专栏视频咖

腾讯视频云 LiteAVSDK 升级到 5.2.5541

4.9 版本开始,短视频licence开始支持自动续期,如果有使用短视频功能申请过licence,请关注:

1432
来自专栏Android 开发者

Android 支持库 v26 有哪些变化?

1583
来自专栏企鹅号快讯

涨知识,原来可以这样用 CSS 来追踪用户

英文:jbtronics 译文:枫上雾棋 https://segmentfault.com/a/1190000012901505 ? 除了使用 JS 追踪用...

1976

扫码关注云+社区