Web 浏览器中的笔/触控笔支持
Posted
技术标签:
【中文标题】Web 浏览器中的笔/触控笔支持【英文标题】:pen/stylus support in web browsers 【发布时间】:2011-05-09 18:37:41 【问题描述】:是否有任何 Web 浏览器可以为 DOM 提供笔/触控笔特定事件(例如压力),类似于 Microsoft 的 RealTimeStylus API?
是否有任何标准的 DOM 接口用于此?如果没有,是否有允许这样做的专有扩展,可能使用插件?
【问题讨论】:
我一直在寻找类似的东西:甚至是使用检测到的标签(或有形标签,rfIds)的能力。你有什么发现吗? 【参考方案1】:根据当前的 API,您无法检索压力。不过有浏览器plugin from Wacom。
DeviantArt Muro 好像在用。
【讨论】:
【参考方案2】:目前没有浏览器公开此类 API。
但是,根据笔/数字化仪驱动程序,笔事件在浏览器中可能看起来像触摸事件,许多浏览器已经实现了这一点。您可以在 Chrome 和 Firefox(通过 Firebug)中使用其控制台中可用的 monitorEvents 功能对此进行测试。简单调用:
monitorEvents(document);
在控制台中,然后查看浏览器是否捕获了所需的事件。我在自己的联想 X200 平板电脑上尝试过,但我的笔式寄存器中没有任何非标准事件(它们都显示为鼠标事件)。
我不知道有任何第三方扩展程序允许这样做,而且 Google 搜索也没有找到任何有用的信息。
【讨论】:
我添加了一个答案以提供有关此问题的更新。让我们祈祷吧!【参考方案3】:这是一个可能的使用 polyfill 的工作解决方案:hand.js。
看到这个很棒的MSDN article on the hand.js。
我建议使用库来平滑路径。在我的 hp 平板电脑上玩触摸时,我很幸运地在 paper.js 中实现了一些东西,我无法想象让这些点适应压力灵敏度会太难。
在 html5 windows 8 应用程序中支持它。遗憾的是,这个 API 还没有暴露给实际的浏览器 AFAIK。
看起来似乎基于它的管道中有一个W3C recommendation。他们似乎正在根据drafts stored in their repo 提出建议。
请参阅Quickstart: Capturing ink data (HTML),了解如何在 Windows 8 应用程序中使用它。
【讨论】:
【参考方案4】:如果浏览器实现了对“pointerevent.pressure”的支持,那么它应该能够支持压敏输入。对于倾斜和扭曲,等效特征是“ponterevent.tiltx”、“pointerevent.tilty”和“pointerevent.twist”。
See for more information.
【讨论】:
【参考方案5】:Pointer Events API 是指针设备可以触发的一组事件。事件对象类似于您为鼠标事件获得的对象,但它们确实为压力等属性添加了属性。这些事件是 supported by 所有现代浏览器的当前版本。
【讨论】:
【参考方案6】:这可能不是一个非常实用的建议或有点矫枉过正,但如果有 API / SDK 将笔 / 触控笔暴露在桌面上,你可以创建一个 webservice 类型的应用程序来实时更新页面来自设备的输入。但是,我没有任何代码可以帮助您解决此问题,我也不知道是否可以在没有不可能的延迟的情况下做到这一点。
【讨论】:
此外,您可以混合使用这两种方法:使用 Web 服务为您的 Web 应用提供压力信息,并使用受支持的插件/库来处理剩余的输入。以上是关于Web 浏览器中的笔/触控笔支持的主要内容,如果未能解决你的问题,请参考以下文章
Android HTC Flyer - 使用 MotionEvents 捕捉触控笔