Javascript 获取用户定义的振动持续时间

Javascript 获取用户定义的振动持续时间,javascript,navigator,vibration,Javascript,Navigator,Vibration,我们可以在支撑设备上触发振动,如: navigator.vibrate(50); 但是API是否支持访问用户默认值?换句话说,是否可以从操作系统获取振动持续时间?因此,当用户在使用设备时通常会按下按钮时,请获取振动持续时间(如果有)?不幸的是,没有,至少没有处于当前状态(W3C编辑稿2019年6月27日) 您可以通读整个规范;它很短 不幸的是,正如您所看到的,只定义了一个方法,振动,因此此API肯定不会让您获得用户设置的默认值 进一步阅读关于模式的部分,看起来你甚至不能触发用户定义的长度模式,

我们可以在支撑设备上触发振动,如:

navigator.vibrate(50);
但是API是否支持访问用户默认值?换句话说,是否可以从操作系统获取振动持续时间?因此,当用户在使用设备时通常会按下按钮时,请获取振动持续时间(如果有)?

不幸的是,没有,至少没有处于当前状态(W3C编辑稿2019年6月27日) 您可以通读整个规范;它很短

不幸的是,正如您所看到的,只定义了一个方法,
振动
,因此此API肯定不会让您获得用户设置的默认值

进一步阅读关于模式的部分,看起来你甚至不能触发用户定义的长度模式,你必须明确你的计时


以后的草稿(或单独的“用户首选项API”)可能会添加您所需的功能,但我个人对此表示怀疑(因为评论中提到的原因)。

这目前不可能直接或间接实现

Vibration API本身不是数据源,因此不会产生任何可能在Web上使用的数据

因此,无法通过振动API直接获得数据

然而,该节还指出

[一] 众所周知,它可以作为其他API的事件源。特别是,众所周知,某些传感器(如加速计或陀螺仪)在制造过程中容易出现微小缺陷。因此,它们提供了一个指纹表面,可利用通过振动API产生的振动刺激进行利用

因此,理论上,是的,你可以通过使用加速器和/或陀螺仪并适当地转换数据来获得实际的持续时间

但是,还有一个警告:根据,必须提供一个
模式
(定义为
number | number[]
)作为参数。因此,您不能使用默认值调用振动

我个人怀疑,出于隐私考虑(这在很大程度上允许指纹识别),在规范的未来版本中,这将转换为可选参数


但请记住,并非所有平台都支持振动,并且在调用时将返回
false
。拒绝操作也是完全有效的(这也将返回
false

听起来不太可能。每个操作系统都有自己的按键振动设置,这些设置也是可配置的。我很难相信你可以使用JavaScript从OS中提取这个信息。除了上面的评论,还考虑到每个移动设备都有自己的设置。我知道每个设备都有自己的配置,用户甚至可以改变它们的设置。这正是我问的原因。