Можно перехватывать изменения URL.
Для этого у WebViewClient нужно переопределить метод
shouldOverrideUrlLoading(WebView view, String url)
или
shouldInterceptRequest(WebView view, String url)
Перехватывать нажатия как-то, думаю ,можно, но не просто. Например установить у WebView onTouchListener, в котором определять каким-то образом, какой элемент находится по этим координатам.
UPD:
Как определить, какой элемент находится по заданным координатам:
WebView.loadUrl("javascript:document.elementFromPoint(x, y);");
Результат можно вернуть, встроив в WebView JavaScriptInterface