我有一个webView.WebView显示带有文本,图像,按钮等的html.
我想做一些事情.
1)用户无法在webView中选择文本
2)点击和长按按钮的行为相同.
我做了下面的事情来解决我的问题:首先,我添加了html页面样式:
body {
...
-webkit-user-select: none;
-webkit-touch-callout: none;
...
}
Run Code Online (Sandbox Code Playgroud)
但它没有帮助我.该解决方案不适用于所有机器人.
所以我尝试为webView添加触摸侦听器.
听众守则:
webView.setOnTouchListener(new OnTouchListener() {
private float prevX;
private float prevY;
@Override
public boolean onTouch(View v, MotionEvent event) {
boolean handled = true;
if (MotionEvent.ACTION_DOWN == event.getAction()) {
prevX = event.getX();
prevY = event.getY();
} else if (MotionEvent.ACTION_UP == event.getAction()) {
if (Math.abs(event.getX() - prevX) < 50
&& Math.abs(event.getY() - prevY) < 50) {
handled = (event.getEventTime() - event
.getDownTime()) > 200;
}
}
Log.d("-------------------------------------------------", …Run Code Online (Sandbox Code Playgroud) 我知道有一种方法可以检测某些应用程序是否覆盖了我的应用程序,即触摸过滤(标记android:filterTouchesWhenObscured)以防止劫持攻击.如果要创建一些策略来处理触摸,可以覆盖该方法
public boolean onFilterTouchEventForSecurity(MotionEvent event)
视图.例如,如果您的应用被其他窗口遮挡,则需要显示一些对话框.但是,如果用户触摸视图,您可以执行所有这些解决方案.我想在用户打开应用程序时显示一些对话框.可能吗?此外,我尝试模拟触摸事件,但我不知道在哪里可以获得MotionEvent.FLAG_WINDOW_IS_OBSCURED,然后设置为运动事件标志.
第二个问题:有没有办法说出什么应用程序模糊我的应用程序?例如,我知道有很多应用程序,例如黄昏,在显示器上添加了一些过滤器.他们使用特定权限(android.permission.SYSTEM_ALERT_WINDOW)来执行此操作.
谢谢.