在 iOS 的 javascript 中禁用长按振动

Posted

技术标签:

【中文标题】在 iOS 的 javascript 中禁用长按振动【英文标题】:disable long-press vibration in javascript for iOS 【发布时间】:2021-01-30 05:06:28 【问题描述】:

使用 ThreeJS 开发网页游戏。在 ios 上,长按会在 0.5 秒后创建一个小的触觉振动反馈。

因为我希望用户能够按住手指四处走动,所以这会分散注意力。

我已经为 touchStarttouchEndtouchMovetouchCancelcontextMenu 启用了 preventDefault 和 stopPropagation,我错过了什么?

每个都是这样实现的:

function onTouchStart(event) 
     event.preventDefault();
     event.stopPropagation();
     ...

谢谢!

【问题讨论】:

【参考方案1】:

您似乎必须明确选择一个容器并将事件处理附加到该容器。

html

<body><div id="body">
    <div>
        test
    </div>
</div></body>

javascript

document.getElementById('body').addEventListener("touchstart", (e)=>
    e.preventDefault();
    e.stopPropagation();
);

附加到#body div 时有效的示例:https://jsfiddle.net/gyfbh35t/2/

附加到文档时不起作用的示例:https://jsfiddle.net/gyfbh35t/3/

【讨论】:

以上是关于在 iOS 的 javascript 中禁用长按振动的主要内容,如果未能解决你的问题,请参考以下文章

解决ios长按图片出现阴影问题

即使禁用了文本选择,IOs Cordova 长按也会显示文本选择放大镜,如何删除?

禁用 ios h5页面中长按图片弹出的弹层

JavaScript禁用页面内容选中和复制操作

长按后抬起手指时iOS中没有Javascript事件?

手机端app h5页面怎么禁用长按选中