簡體   English   中英

如何徹底去除手機瀏覽器長按震動?

[英]How to completely remove mobile browser long-press vibration?

我正在嘗試完全消除在移動瀏覽器中長按某個元素時發生的振動。

具體來說,我有一個圖像,我正在向其中添加我自己的長按功能,但是默認情況下發生的微妙的短振動會產生干擾,我需要禁用它。

我通過如下覆蓋它成功地阻止了通常的上下文菜單的出現:

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

我還添加了 CSS 以停止突出顯示和文本選擇等 - 但我無法弄清楚是什么導致了幾百毫秒后的默認振動。

在移動瀏覽器中、oncontextmenu 中或周圍是否有另一個生命周期事件在長按時彈出?

完整的 plunker 示例,請從移動瀏覽器(我在 Android 上使用 chrome)長按圖像以了解我的意思: https ://plnkr.co/edit/y1KVPltTzEhQeMWGMa1F?p=preview

我使用自己的React App在最后一天左右經歷了同樣的問題,我已經完成了與你相同的步驟而沒有成功。 目前我有一個Android應用程序正在使用webView打開React Web應用程序,我發現的是:

我很確定你(我們)試圖做的事情不能僅僅通過ReactJS完成,我使用的解決方案,因為我通過Android應用程序加載我的ReactJS應用程序是添加方法:

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

您可以使用touch-action: none; 在 CSS 中。 然后你就可以處理交互事件來做你想做的事。

https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action

單擊時禁用文本選擇。

document.querySelector("#your_target").addEventListener("touchstart", (e) =>
{
    e.preventDefault();
    e.stopPropagation();
    this.style.userSelect = "none";
});

document.querySelector("#your_target").addEventListener("touchend", (e) =>
{
    e.preventDefault();
    e.stopPropagation();
    this.style.userSelect = "default";
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM