自定义WebView

开启的WebView的一些功能。

重写了一部份可能用到的代码。

import android.content.Context;
import android.util.AttributeSet;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebSettings.RenderPriority;

/**
 * A convenient extension of WebView.
 */
public class CustomWebView extends WebView{
	
	private int mProgress = 100;
	
	private boolean mIsLoading = false;
	
	private String mLoadedUrl;
	
	private CustomWebViewClient webViewCleint;
	
	private CustomWebChromeClient  webChromeClient;
	
	public void CustomWebViewInit(Context context) {
		
		webViewCleint      = new CustomWebViewClient();
		webChromeClient    = new CustomWebChromeClient();
		
		setWebViewClient(webViewCleint);
		
		setWebChromeClient(webChromeClient);
		
		initializeOptions();
		
		initProgressBar();
	}	
	private void initProgressBar() {
//		mProgressBar = new ProgressDialog(mContext);
//		mProgressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//		mProgressBar.setMessage(mContext.getString(R.string.inforGetting));
	}
	
	public CustomWebView(Context context) {
        super(context);
        CustomWebViewInit(context);
	}	

	public CustomWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        CustomWebViewInit(context);
	}	
	
	/**
	 * Initialize the WebView with the options set by the user through preferences.
	 */
	public void initializeOptions() {
		WebSettings settings = getSettings();
	    setScrollbarFadingEnabled(true);
//      ,                                           	`setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
	    setHorizontalScrollBarEnabled(false);
        setVerticalScrollBarEnabled(false);
        setDrawingCacheEnabled(true);
    	setScrollbarFadingEnabled(true);
    	setDrawingCacheEnabled(true);
		settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
		settings.setLoadWithOverviewMode(true);
    	settings.setDatabaseEnabled(true);
    	settings.setDomStorageEnabled(true);
    	settings.setNeedInitialFocus(false);
    	settings.setSupportZoom(true);
		settings.setAppCacheEnabled(true);
    	settings.setDatabaseEnabled(true);
    	settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
    	settings.setDomStorageEnabled(true);
    	settings.setRenderPriority(RenderPriority.HIGH);
		settings.setJavaScriptEnabled(true);
        settings.setLoadsImagesAutomatically(true);
        settings.setUseWideViewPort(false);
//        String USER_AGENT_DESKTOP = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.44 Safari/534.7";
//        settings.setUserAgentString(USER_AGENT_DESKTOP);
        
	}
	
	
//	@Override
//	public boolean onTouchEvent(MotionEvent ev) {
//		return super.onTouchEvent(ev);
//	}
//	
	@Override
	public void loadUrl(String url) {
	    super.loadUrl(url);
	    mLoadedUrl = url;
   
	}
	

	/**
	 * Set the current loading progress of this view.
	 * @param progress The current loading progress.
	 */
	public void setProgress(int progress) {
		mProgress = progress;
	}
	
	/**
	 * Get the current loading progress of the view.
	 * @return The current loading progress of the view.
	 */
	public int getProgress() {
		return mProgress;
	}
	
	/**
	 * Triggered when a new page loading is requested.
	 */
	public void notifyPageStarted() {
		mIsLoading = true;
	}
	
	/**
	 * Triggered when the page has finished loading.
	 */
	public void notifyPageFinished() {
		mProgress = 100;
		mIsLoading = false;
	}
	
	/**
	 * Check if the view is currently loading.
	 * @return True if the view is currently loading.
	 */
	public boolean isLoading() {
		return mIsLoading;
	}
	
	/**
	 * Get the loaded url, e.g. the one asked by the user, without redirections.
	 * @return The loaded url.
	 */
	public String getLoadedUrl() {
		return mLoadedUrl;
	}
	
	/**
	 * Reset the loaded url.
	 */
	public void resetLoadedUrl() {
		mLoadedUrl = null;
	}
	
	public boolean isSameUrl(String url) {
		if (url != null) {
			return url.equalsIgnoreCase(this.getUrl());
		}
		
		return false;
	}
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值