1. 程式人生 > >WebView--(雙擊退出)

WebView--(雙擊退出)

package com.rong.webView;

import android.os.Bundle;
import android.view.KeyEvent;
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;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.graphics.Bitmap;

public class MainActivity extends Activity {

    private WebView webView;

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
      //得到WebView物件
        webView = (WebView) findViewById(R.id.webView);
        //得到WebSettings物件
        WebSettings webSettings = webView.getSettings();
        //設定是否支援js(javaScript)
        webSettings.setJavaScriptEnabled(true);
        //開啟webView自帶的縮放按鈕
        webSettings.setBuiltInZoomControls(true);
        //設定webView載入頁面的方法
        setWebView();
    }
	private long exetime;
	
	//設定返回鍵為回退
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		/*if(keyCode==KeyEvent.KEYCODE_BACK&&webView.canGoBack()){
			webView.goBack();
			return true;
		}*/
		
		//再按一次就退出
		if(System.currentTimeMillis()-exetime>2000){
			Toast.makeText(MainActivity.this, "再按一次退出程式", Toast.LENGTH_SHORT).show();
			exetime=System.currentTimeMillis();
		}else{
			System.exit(0);
		}
		
		
		return true;
	}


	/**
	 * 
	 * @param v
	 * 
	 * 點選載入網頁
	 */
	public void alert(View v){
		//訪問assets資料夾中的html頁面
		webView.loadUrl("file:///android_asset/jstest.html");
		//設定瀏覽器的處理類
		webView.setWebChromeClient(new WebChromeClient(){

			@Override
			public boolean onJsAlert(WebView view, String url, String message,
					final JsResult result) {
				AlertDialog.Builder builder=new Builder(MainActivity.this);
				builder.setMessage(message);
				builder.setPositiveButton("確定", new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						result.confirm();
						
					}
				});
				
				builder.setNegativeButton("關閉", new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						result.cancel();
					}
				});
				
				
				AlertDialog alertDialog = builder.create();
				alertDialog.show();
				return true;
			}
			
		});
	}
	
    /**
     * 設定webView載入頁面的方法
     * 
     */
	private void setWebView() {
		webView.setWebViewClient(new WebViewClient(){

			@Override
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				//返回值為false時,當前url交給當前webView處理
				return super.shouldOverrideUrlLoading(view, url);
			}

			//開始載入頁面
			@Override
			public void onPageStarted(WebView view, String url, Bitmap favicon) {
				super.onPageStarted(view, url, favicon);
			}

			//完成頁面載入
			@Override
			public void onPageFinished(WebView view, String url) {
				super.onPageFinished(view, url);
			}
			
		});
		
	}

}