在webview中加载HTML页面的时候,我们往往需要捕捉里面的点击事件。在这里我推荐2种方式
1、通过服务器给客户端返回的json数据来判断,是哪一个事件:
mWebView.setWebViewClient(new CustomWebViewClient());
//在这里实现跳转等操作
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
System.out.println("url--->"+url);
if (url.startsWith("ld") && url.contains("viewOrder")) {
splitUrlOfUser(url) ;
}else if (url.startsWith("ld") && url.contains("customerService")) {
onRightClickListener(null) ;
}else if (url.startsWith("ld") && url.contains("getFaceCurrency")) {
Intent intent= new Intent(DialActivity.this,TodayTaskActivity.class);
intent.putExtra("id", 1);
startActivity(intent);
}else {
view.loadUrl(url);
}
return true;
}
2、通过设置
mWebView.addJavascriptInterface(new Demo(), "Demo");
private class Demo
{
public void click()
{
//需要执行的逻辑代码
}
}
关于webview的属性有很多,再加点别的东西:
mWebView = (WebView) findViewById(R.id.webView);
mWebView.getSettings().setJavaScriptEnabled(true);//设置HTML可被点击
mWebView.setVerticalScrollBarEnabled(false);//设置纵向滚动属性
mWebView.setHorizontalScrollBarEnabled(false);//设置横向滚动属性
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);//设置是否缓存
mWebView.loadUrl(Urls.DETAIL_URL + getUserPreferences(UserPref.Token) + "&activityId=" + 151);//加载网页
最后我还是要申明一下,第一种方式公司项目在用,第二种方式自己没有试过,网上童鞋说可以,有兴趣的可以试试。