1. 程式人生 > >android 一個封裝的webview

android 一個封裝的webview

大神的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");
獲取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) {
            //介面改變
        }
    };