【问题标题】:Preventing the Android "long press" to save images防止安卓“长按”保存图片
【发布时间】:2010-08-13 21:15:05
【问题描述】:

我用 HTML 和 Javascript 为 iPhone 和 Android 编写了一个网络应用程序,其中涉及拖放图像。

您可以通过将手指放在图像上大约一秒钟来启动拖动。但是,Android 会弹出消息,让我选择保存图像、将其设置为墙纸等。

如何防止 Android 这样做?有我可以使用的元标记吗?一些javascript?

【问题讨论】:

    标签: javascript android image drag


    【解决方案1】:

    Javascript 具有防止浏览器对相关事件的默认操作的功能。

    在你的 javascript 中尝试:

    event.preventDefault();
    

    见:https://developer.mozilla.org/en/DOM/event.preventDefault

    【讨论】:

    • 参加什么活动?在您抬起手指之前,似乎什么都不会触发。
    • 如何分配 mouseup/click/longpress 事件?那就是你定义它的地方。附加到事件的所有用户指定函数都将在浏览器之前触发。换句话说,把 event.preventDefault();在你的长按事件函数中应该在 androids 函数之前触发。我们可以再看一点代码吗?
    • 我想要的是,当您按住图像时,Android 对话框不会弹出。
    • ...据我所知,没有长按事件。
    • AFAIK 你必须在 touchstart 处理程序中阻止默认值才能阻止按下。
    【解决方案2】:

    使用这个事件:

                $(document).on('contextmenu', function (e) {
                    // stop long touch hold from poping up context menus
                    return false;
                });
    

    【讨论】:

      【解决方案3】:

      在显示 web 视图的活动中,尝试扩展 GestureDetector.SimpleOnGestureListener。然后重写onLongPress(MotionEvent e) 方法,什么都不做。

      如果这不起作用,您可能必须创建一个从 webview 继承并覆盖那里的 onLongPress 的自定义 webview。

      或者你可以试试

      WebView wv =(WebView) findViewById() wv.setClickable(false)

      【讨论】:

      • 这是一个网页,不是安卓应用。
      • 哦,我误会了。我以为您正在编写一个 android 应用程序来与您的网络应用程序交互。我不确定你是否能够防止 android 像那样长按。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 2011-12-27
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多