如何彻底删除移动浏览器长按振动?

时间:2017-09-07 04:22:48

标签: javascript web mobile

我正在尝试彻底消除移动浏览器中长按元素时发生的振动。

具体来说,我有一个图像,我正在添加我自己的长按功能,但默认发生的微妙的短振动是干扰,我需要禁用它。

我已成功停止通常的上下文菜单,通过覆盖它来显示如下:

window.oncontextmenu = function (event) {
  event.preventDefault();
  event.stopPropagation();
  return false;
};

我还添加了CSS来停止高亮显示和文本选择等 - 但是我无法弄清楚几百毫秒后导致默认振动的原因。

是否有其他生命周期事件在oncontextmenu中或周围的移动浏览器中长时间弹出?

Full plunker示例在这里,长按移动浏览器上的图像(我在Android上使用chrome)来查看我的意思:https://plnkr.co/edit/y1KVPltTzEhQeMWGMa1F?p=preview

1 个答案:

答案 0 :(得分:0)

在过去的一天左右的时间里,我使用自己的React App经历了同样的问题,与您一样,我也经历了相同的步骤,但没有成功。目前,我有一个Android应用程序正在使用webView打开React Web应用程序,我发现的是:

我相当确定您(我们)试图做的事情仅靠ReactJS(我使用的解决方案)是无法完成的,因为我通过Android应用程序加载ReactJS应用程序时要添加以下方法:< / p>

android:hapticFeedbackEnabled="false"

到我的AndroidManifest.xml文件 (此处的文档:https://developer.android.com/reference/android/view/View#attr_android:hapticFeedbackEnabled

如果您想阅读更多有关本机Android解决方案的信息,请参阅Android Cookbook的有关自定义触觉反馈的部分:http://androidcookbook.com/Recipe.seam?recipeId=1242

或者,可以通过React-Native提供解决方案。 React Native具有内置的振动模块,可在此处获取配置文档:https://facebook.github.io/react-native/docs/vibration