我可以使用webview.onTouch事件上的WebView.HitTestResult在html中检测一些事件(http://developer.android.com/reference/android/webkit/WebView.HitTestResult.html#constants)。我试图实现的是,当用户点击webivew中的任何地方时,如果它没有启动任何操作,如播放/暂停视频,重定向某些页面等,然后在同一活动中切换页脚linearLayout的可见性。但是我无法捕捉到一些动作,比如点击按钮,在webview中播放/暂停视频元素按钮。那么我怎么才能发现这些行为?
webView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
WebView.HitTestResult hr = ((WebView) v).getHitTestResult();
if (hr != null) {
Log.w("webView.onTouch", "getExtra = " + hr.getExtra() + "\t\t Type=" + hr.getType());
} else {
Log.w("webView.onTouch", event.toString());
}
return false;
}
});
答案 0 :(得分:0)
你必须Atleast获取元素名称或Id或类或任何属性来设置onClick属性如果你知道它然后使用Javascript为onClick添加属性真的很容易
Webview webview;
.....
您的代码或其他任何内容 ... webview.addJavascriptInterface(new javasctiptinterface(),“javasciptinterfaceCall”);
webview.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:document.getElementsByName('Element_NameAttribute_Value')[0].setAttribute('onClick','javascriptinterfaceCall.clicked()');");
}
});
Class javasctiptinterface{
@javascriptinterface
public void clicked(){
... Your Code ......
}