是否可以在网络浏览器中检测到被动手写笔

Posted

技术标签:

【中文标题】是否可以在网络浏览器中检测到被动手写笔【英文标题】:Is it possible to detect a passive stylus in a web browser 【发布时间】:2018-01-23 13:25:36 【问题描述】:

我想知道您是否可以检测到事件来自现代网络浏览器的被动笔。

例如在 Surface 集线器上,在 Edge 中,您可以使用 event.pointerType === 'pen' 来区分用笔和手指进行的触摸,但我不知道您是否可以对任何触摸做同样的事情笔在任何操作系统的任何浏览器上。

我没有找到任何有关它的信息,但我不确定我查看了正确的地方。

【问题讨论】:

我的猜测是这是一个非标准功能,只有 Edge 实现。 它实际上在 w3c w3.org/TR/pointerevents 中。但我不确定哪些 pen/ose 实际上能够将正确的事件传递给浏览器,以及 pen 事件真正正确发送到浏览器的确切条件是什么。 【参考方案1】:

大多数现代浏览器都支持event.pointerType

https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType

在 Firefox 中,它要求在 about:config 中将 dom.w3c_pointer_events.enabled 设置为 true。它将mousepentouch 呈现为值。

【讨论】:

是的,但是操作系统实际上能够将被动笔触摸作为笔事件传递给浏览器吗?我理解现代浏览器公开了 pointerType 属性,但是为了获得正确的值,他们必须以这种方式从操作系统也是如此。如果操作系统没有检测到笔,它会向浏览器发送一个触摸类型事件,浏览器又将指针类型属性设置为“触摸”,不是吗?【参考方案2】:

是的,不是的!被动笔被解释为触摸但是您可以使用指针事件宽度和高度来猜测触摸是被动笔还是简单触摸。假设手指的宽度和高度比笔大

【讨论】:

以上是关于是否可以在网络浏览器中检测到被动手写笔的主要内容,如果未能解决你的问题,请参考以下文章

浏览器判断ios是不是连接wifi

openwrt网络检测开吗

如何以编程方式检测是不是在 Windows 桌面应用程序中启用/禁用了 javascript? (网络浏览器控件)

检测 iOS 是不是正在使用 webapp

是否可以隐藏来自浏览器开发者控制台的网络流量?

如何可以快速解决网络劫持