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 捕捉触控笔

在网站上使用 Surface Pro 触控笔

Android-Input 5

从 iPad 触控笔获取生物特征信息

在 Windows 10 中触控笔未触发 InkCanvas 事件

使用触控笔捕捉笔触