【发布时间】:2014-01-06 19:06:42
【问题描述】:
我对 Android 中的 MotionEvent 有疑问。我想向 Webview 发送“点击”,因为有一个 iframe,我必须单击 iframe 中的一个图像/按钮。所以我不能你 js 因为我无法控制 iframe 的内容。
我的代码:
private void simulateDoubleTapEvent(int action)
{
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 35.407104f;
float y = 378.52066f;
// List of meta states found here: developer.android.com/reference/android/view/KeyEvent.html#getMetaState()
int metaState = 0;
MotionEvent me = MotionEvent.obtain(
downTime,
eventTime,
action,
x,
y,
metaState
);
dispatchTouchEvent(me);
}
在 onCreate 中:
webview2.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
float x = event.getX();
float y = event.getY();
event.getMetaState();
Log.v("ON_TOUCH", "Action = " + action + " View:" + v.toString());
Log.v("ON_TOUCH", "X = " + x + "Y = " + y);
return false;
}
});
webview2.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{ view.loadUrl(url); return true; }
public void onPageFinished(WebView view, String url) {
Log.w("webview2","Load");
simulateDoubleTapEvent(0);
simulateDoubleTapEvent(1);
}
});
webView 加载了 Url,但是代码没有点击它。如果我单击 webView,则会触发 onTouch 事件。
你能帮帮我吗?
来自德国的问候。
【问题讨论】:
标签: android webview touch-event motionevent