package com.hupu.games.view; import android.content.Context; import android.graphics.Bitmap; import android.net.Uri; import android.os.Message; import android.util.AttributeSet; import android.webkit.CookieManager; import android.webkit.WebView; import android.webkit.WebViewClient; import com.hupu.games.common.HupuLog; import com.hupu.games.common.HupuSchemeProccess; import com.hupu.games.handler.IWebViewClientEvent; public class SimpleWebView extends WebView { protected IWebViewClientEvent mIWebViewClientEvent; public SimpleWebView(Context context, AttributeSet attrs) { super(context, attrs); initWebViewClient(); } public SimpleWebView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initWebViewClient(); } public SimpleWebView(Context context) { super(context); initWebViewClient(); } public void setWebViewClientEventListener(IWebViewClientEvent i) { mIWebViewClientEvent = i; } /** * 是否由调用类自己处理URL跳转事务 * */ boolean mBoolTreatURL; public void setWebViewClientEventListener(IWebViewClientEvent i, boolean bTreatURL) { mIWebViewClientEvent = i; mBoolTreatURL = bTreatURL; } public void switchActivity(Uri uri) { HupuSchemeProccess.proccessScheme(getContext(), uri); } void initWebViewClient() { CookieManager.getInstance().setAcceptCookie(true); setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { HupuLog.e("SimpleWebView ", "shouldOverrideUrlLoading="+url); Uri uri = Uri.parse(url); if (uri.getScheme().equalsIgnoreCase("kanqiu")) { switchActivity(uri); if (mIWebViewClientEvent != null) mIWebViewClientEvent.shouldOverrideUrlLoading(view, url, true); } else { if (!mBoolTreatURL) view.loadUrl(url); if (mIWebViewClientEvent != null) return mIWebViewClientEvent.shouldOverrideUrlLoading( view, url, false); } return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); if (mIWebViewClientEvent != null) mIWebViewClientEvent.onPageFinished(view, url); } public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); if (mIWebViewClientEvent != null) mIWebViewClientEvent.onReceivedError(view, errorCode, description, failingUrl); } }); } }