標籤:android style blog http java color
1、主Activity的原始碼:
package com.jhtg.happyagent;import android.annotation.SuppressLint;import android.app.Activity;import android.graphics.Bitmap;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.Window;import android.webkit.CookieManager;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import com.jhtg.view.SendingProgressDialog;@SuppressLint("SetJavaScriptEnabled")public class HomeActivity extends Activity { private WebView myWebView = null; private SendingProgressDialog m_progressDialog; /** * 擷取WebView視圖,並設定WebViewClient用來在你的WebView中開啟連結 */ @SuppressWarnings("deprecation") @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); // 不顯示是程式的標題列 setContentView(R.layout.home); myWebView = (WebView) findViewById(R.id.homeView); CookieManager.getInstance().removeAllCookie(); WebSettings webSettings = myWebView.getSettings();//獲得webSettings設定對象 //下面3行是WebView支援JS並能夠和JS代碼間進行互動的設定 webSettings.setJavaScriptEnabled(true); webSettings.setSupportZoom(false); webSettings.setBuiltInZoomControls(false); webSettings.setPluginState(WebSettings.PluginState.ON);//這裡是支援flash的相關設定 myWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); myWebView.getSettings().setSupportMultipleWindows(true); MyWebViewClient mWebClient = new MyWebViewClient(); myWebView.setWebViewClient(mWebClient);//向WebView提供一個WebViewClient,這樣就可以在你的WebView中開啟連結了 /*myWebView.setWebChromeClient(new myChromeClient() { public void onProgressChanged(WebView view, int progress) { setProgress(progress * 100); } });*/ myWebView.loadUrl("http://www.taobao.com"); //myWebView.loadUrl("file:///android_asset/test.html");//包含本地檔案,在WebView中開啟 } /*class myChromeClient extends WebChromeClient { public void onReceivedTitle(WebView view, final String title) { //隨時更新網頁的title } }*/ private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.indexOf("tel:") >= 0) {// 頁面上有數字會導致系統會自動連接電話,屏蔽此功能 return true; } view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); if (m_progressDialog != null) { m_progressDialog.stop(); } } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); try { initSendingDialog("正在載入網頁,請稍後..."); } catch (Exception e) { e.printStackTrace(); } } } protected void initSendingDialog(String message) { // TODO Auto-generated method stub if (m_progressDialog == null) { m_progressDialog = new SendingProgressDialog(this, message); } m_progressDialog.start(); } /** * 按鍵響應,在WebView中查看網頁時,按返回鍵的時候按瀏覽曆史退回,如果不做此項處理則整個WebView返回退出 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) { // 返回鍵退回 myWebView.goBack();//返回上一個曆史網頁 return true; } return super.onKeyDown(keyCode, event); }}
2、home.xml 的源碼如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <WebView android:id="@+id/homeView" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
3、SendingProgressDialog 自訂彈出框類的源碼如下:
package com.jhtg.view;import android.app.ProgressDialog;import android.content.Context;import android.view.KeyEvent;/** * @author sang * @version 建立時間:2014-7-10 上午9:25:00 類說明 */public class SendingProgressDialog { public ProgressDialog dialog; private final String message = "正在發送中,請稍候..."; public SendingProgressDialog(Context paramContext) { this(paramContext, null); } public SendingProgressDialog(Context paramContext, String paramString) { dialog = new ProgressDialog(paramContext){ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(this.isShowing()){ return false; } return super.onKeyDown(keyCode, event); } }; this.dialog.setCancelable(true); if (paramString == null) { this.dialog.setMessage(message); } else { this.dialog.setMessage(paramString); } } public void start() { try { this.dialog.show(); } catch (Exception e) { } } public void stop() { try { if (this.dialog != null) { this.dialog.dismiss(); this.dialog.cancel(); } } catch (Exception e) { } }}
最後記得要在 AndroidManifest.xml 添加許可權 :
<uses-permission android:name="android.permission.INTERNET" />