Android自定义的webView——可实现的网页文本的复制

package com.example.customlinearlayout.view;



import android.app.ProgressDialog;

import android.content.Context;

import android.graphics.Bitmap;

import android.util.AttributeSet;

import android.view.MotionEvent;

import android.view.View;

import android.webkit.JsResult;

import android.webkit.WebChromeClient;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.Toast;



public class LiveWebView extends WebView {



    Context mContext;



    public LiveWebView(Context context) {

        super(context);

        mContext = context;

        setWebViewClient();

    }



    public LiveWebView(Context context, AttributeSet attrs) {

        super(context, attrs);

        mContext = context;

        setWebViewClient();

    }



    @Override

    public boolean onCheckIsTextEditor() {

        return true;

    }



    boolean setWebViewClient() {



        setScrollBarStyle(SCROLLBARS_INSIDE_OVERLAY);

        setFocusable(true);

        setFocusableInTouchMode(true);

        requestFocus(View.FOCUS_DOWN);

        WebSettings webSettings = getSettings();

        webSettings.setSavePassword(false);

        webSettings.setSaveFormData(false);

        webSettings.setJavaScriptEnabled(true);

        webSettings.setSupportZoom(false);

        webSettings.setUseWideViewPort(true);



        setOnTouchListener(new View.OnTouchListener() {



            @Override

            public boolean onTouch(View v, MotionEvent event) {

                switch (event.getAction()) {

                case MotionEvent.ACTION_DOWN:

                case MotionEvent.ACTION_UP:

                    if (!v.hasFocus()) {

                        v.requestFocus();

                    }

                    break;

                }

                return false;

            }



        });



        this.setWebViewClient(new WebViewClient() {

            ProgressDialog dialog = new ProgressDialog(mContext);



            @Override

            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                System.out.println("+-------------------------------");

                System.out.println("|    shouldOverrideUrlLoading : url:  " + url);

                System.out.println("+-------------------------------");

                loadUrl(url);



                return true;

            }



            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

                Toast.makeText(mContext, "Oh no! " + description, Toast.LENGTH_SHORT).show();

            }



            @Override

            public void onPageStarted(WebView view, String url, Bitmap favicon) {

                if (dialog != null) {

                    dialog.setMessage("Loading...");

                    dialog.setIndeterminate(true);

                    dialog.setCancelable(true);

                    dialog.show();

                }

            }



            public void onPageFinished(WebView view, String url) {

                if (dialog != null) {

                    dialog.cancel();

                }

            }

        });



        this.setWebChromeClient(new WebChromeClient() {

            public void onProgressChanged(WebView view, int progress) {

            }



            @Override

            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

                System.out.println("+-------------------------------");

                System.out.println("|WebChromeClient onJsAlert    " + message);

                System.out.println("+-------------------------------");

                result.confirm();

                return true;

            }

        });



        loadUrl("http://www.baidu.com");



        return true;

    }



}

你可能感兴趣的:(android)