android 一個封裝的webview
阿新 • • 發佈:2018-12-31
大神的CSDN:https://github.com/Justson/AgentWeb。
新增依賴
compile 'com.just.agentweb:agentweb:1.2.2'
基本使用
獲取title: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 */ 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) {
//介面改變
}
};