package com.hupu.games.fragment; import java.lang.reflect.InvocationTargetException; import android.annotation.SuppressLint; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.webkit.CookieManager; import android.webkit.WebView; import android.widget.ImageButton; import com.hupu.games.R; import com.hupu.games.activity.HupuBaseActivity; import com.hupu.games.activity.HupuHomeActivity; import com.hupu.games.common.HupuLog; import com.hupu.games.handler.IWebViewClientEvent; import com.hupu.games.view.HupuWebView; import com.mato.sdk.proxy.Proxy; @SuppressLint({ "ValidFragment", "NewApi" }) public class WebViewFragment extends BaseFragment implements IWebViewClientEvent { private HupuWebView mWebView; /** 当前的所连接的url */ private String mStrUrl; private ImageButton mBtnPre; private ImageButton mBtnNext; View layoutToolBar; /** 两种模式,一种需要导航栏,一种不需要 */ int mMode; public WebViewFragment(int m) { mMode = m; } public void setUrl(String url) { mStrUrl = url; HupuLog.e("url", url); } class Click implements OnClickListener { @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.btn_fresh:// 刷新 mWebView.reload(); break; case R.id.btn_next: goForward(); break; case R.id.btn_pre: goBack(); break; // case R.id.btn_browser:// 跳转到手机自带的浏览器 // Intent viewIntent = new Intent(Intent.ACTION_VIEW, // Uri.parse(mStrUrl)); // startActivity(viewIntent); // break; } } } /** 浏览历史往后 */ private void goBack() { if (mWebView.canGoBack()) mWebView.goBack(); setState(); } /** 浏览历史往前 */ private void goForward() { if (mWebView.canGoForward()) mWebView.goForward(); setState(); } /** 设定底部导航的不同ui显示 */ private void setState() { if (mWebView.canGoBack()) // mBtnPre.setImageResource(R.drawable.btn_pre); mBtnPre.setEnabled(true); else mBtnPre.setEnabled(false); // mBtnPre.setImageResource(R.drawable.btn_pre_disable); if (mWebView.canGoForward()) // mBtnNext.setImageResource(R.drawable.btn_next); mBtnNext.setEnabled(true); else // mBtnNext.setImageResource(R.drawable.btn_next_disable); mBtnNext.setEnabled(false); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_webview, container, false); mWebView = (HupuWebView) v.findViewById(R.id.webview); mWebView.setWebViewClientEventListener(this); Proxy.supportWebview(getActivity()); if (android.os.Build.VERSION.SDK_INT > 10) { mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); } CookieManager.getInstance().setAcceptCookie(true); ((HupuBaseActivity)getActivity()).setShareEnable(false); mWebView.loadUrl(mStrUrl); mBtnPre = (ImageButton) v.findViewById(R.id.btn_pre); mBtnNext = (ImageButton) v.findViewById(R.id.btn_next); layoutToolBar = v.findViewById(R.id.layout_tool_bar); Click click = new Click(); mBtnPre.setOnClickListener(click); mBtnNext.setOnClickListener(click); ///v.findViewById(R.id.btn_browser).setOnClickListener(click); v.findViewById(R.id.btn_fresh).setOnClickListener(click); return v; } /** * 由其他的页面切换进入 * */ public void entry(String url) { HupuLog.d("load urlentry =" + mStrUrl); if (mWebView != null && mStrUrl != url) { mWebView.clearCache(false); ((HupuBaseActivity)getActivity()).setShareEnable(false); mWebView.loadUrl(url); } mStrUrl = url; } @Override public void onResume() { super.onResume(); if (mWebView != null) { try { mWebView.getClass().getMethod("onResume") .invoke(mWebView, (Object[]) null); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } } } public void onPause() { super.onPause(); if (mWebView != null) { try { mWebView.getClass().getMethod("onPause") .invoke(mWebView, (Object[]) null); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } } } @Override public void onDestroy() { if (mWebView != null) { mWebView.stopLoading(); mWebView.clearHistory(); mWebView.setVisibility(View.GONE); mWebView.destroy(); } super.onDestroy(); } @Override public void onPageFinished(WebView view, String url) { setState(); ((HupuBaseActivity)getActivity()).setShareEnable(true); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url, boolean isScheme) { mStrUrl =url; ((HupuBaseActivity)getActivity()).setShareEnable(false); return true; } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { } String mWebTitle; @Override public void onReceivedTitle(WebView view, String title) { mWebTitle =title; } public String getShareUrl() { return mStrUrl; } public String getShareContent() { return mWebTitle; } }