大神的CSDN:https://github.com/Justson/AgentWeb。
添加依赖
compile 'com.just.agentweb:agentweb:1.2.2'
基本使用
agentWeb = agentWeb.with(this)//传入Activity
.setAgentWebParent(linearlayout, new LinearLayout.LayoutParams(-1, -1))//传入AgentWeb 的父控件 ,如果父控件为 RelativeLayout , 那么第二参数需要传入 RelativeLayout.LayoutParams
// .closeProgressBar()//关闭进度条
.useDefaultIndicator()// 使用默认进度条
// .setIndicatorColor(R.color.colorAccent)//设置进度条颜色
.setIndicatorColorWithHeight(ContextCompat.getColor(this,R.color.colorAccent),5)//设置进度条颜色和宽度
// .defaultProgressBarColor() // 使用默认进度条颜色
.setReceivedTitleCallback(mCallback) //设置 Web 页面的 title 回调
.setWebViewClient(mWebViewClient)
.setWebChromeClient(mWebChromeClient)
.createAgentWeb()
.ready()
.go("http://www.jd.com");
agentWeb = agentWeb.with(this)//传入Activity
.setAgentWebParent(linearlayout, new LinearLayout.LayoutParams(-1, -1))//传入AgentWeb 的父控件 ,如果父控件为 RelativeLayout , 那么第二参数需要传入 RelativeLayout.LayoutParams
// .closeProgressBar()//关闭进度条
.useDefaultIndicator()// 使用默认进度条
// .setIndicatorColor(R.color.colorAccent)//设置进度条颜色
.setIndicatorColorWithHeight(ContextCompat.getColor(this,R.color.colorAccent),5)//设置进度条颜色和宽度
// .defaultProgressBarColor() // 使用默认进度条颜色
.setReceivedTitleCallback(mCallback) //设置 Web 页面的 title 回调
.setWebViewClient(mWebViewClient)
.setWebChromeClient(mWebChromeClient)
.createAgentWeb()
.ready()
.go("http://www.jd.com");
获取title:
/**
* 获取title
*/
ChromeClientCallbackManager.ReceivedTitleCallback mCallback = new ChromeClientCallbackManager.ReceivedTitleCallback() {
@Override
public void onReceivedTitle(WebView view, String title) {
Toast.makeText(WebViewActivity.this, "这个是标题哦 ==> " + title, Toast.LENGTH_SHORT).show();
}
};
返回键的监听:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (agentWeb.handleKeyEvent(keyCode, event)) {
return true;
}
return super.onKeyDown(keyCode, event);
}
释放资源:
/**
* 跟随生命周期释放资源更省电
*/
@Override
protected void onPause() {
agentWeb.getWebLifeCycle().onPause();
super.onPause();
}
@Override
protected void onResume() {
agentWeb.getWebLifeCycle().onResume();
super.onResume();
}
关于界面监听:
//WebViewClient 用于监听界面的开始和结束
private WebViewClient mWebViewClient=new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//界面开始
}
@Override
public void onPageFinished(WebView view, String url) {
//界面结束
}
};
//WebChromeClient 监听界面的改变
private WebChromeClient mWebChromeClient=new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
//界面改变
}
};