我希望在点击链接(链接调用函数)后在webview中调用javascript函数之前做一些事情。
我试图通过重载“setOnTouchListener”来做这件事,但是当我尝试做的时候我总是得到((WebView)v)。getHitTestResult()。getExtra();
mMainWebView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
WebView.HitTestResult hr = ((WebView)v).getHitTestResult();
return false;
}
});
我知道将要调用的函数的名称,我可以为函数调用执行类似“shouldOverrideUrlLoading”的操作吗?
感谢。
答案 0 :(得分:0)
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d(TAG,"shouldOverrideUrlLoading url: "+url);
if( url.startsWith("http:") || url.startsWith("https:") ) {
//capture the url and call method you want
return false;
}
// Otherwise allow the OS to handle it
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
mcContext.startActivity( intent );
return true;
}
答案 1 :(得分:0)
setOnTouchListener(...)
时,您应传递new OnTouchListener() {...}
的值。注意:我不使用new View.OnTouchListener() {...}
(从声明中删除View.
)。
我确信拥有比我更好的Java经验的人可以解释为什么会这样,但我想这与继承模型或这些方面的解释有关。