WebView

来源:互联网 发布:gta5捏脸数据女萌妹 编辑:程序博客网 时间:2024/04/27 19:46

package com.example.android_09_webview;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.JsPromptResult;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

@SuppressLint(“ShowToast”)
public class MainActivity extends Activity {

private WebView webView;@SuppressLint("SetJavaScriptEnabled")@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    webView = (WebView) findViewById(R.id.web_view);    // 设置webview状态信息    WebSettings webSettings = webView.getSettings();    // 设置webview是否可以支持js    webSettings.setJavaScriptEnabled(true);    // 设置web自带的放缩按钮    webSettings.setBuiltInZoomControls(true);    // 设置支持变焦    webSettings.setSupportZoom(true);    // 加载界面方法    SetWebView();}// 按钮点击事件public void WebView(View v) {    // 设置访问路径     String url = "http://www.sohu.com/";

// String url = “file:///android_asset/jstest.html”;
webView.loadUrl(url);
// 设置浏览器的处理类,主要处理js界面
webView.setWebChromeClient(new WebChromeClient() {
// 返回true,客户端处理警告对话框
@Override
public boolean onJsAlert(android.webkit.WebView view, String url,
String message, final JsResult result) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, “” + message, 1).show();
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setMessage(message);
builder.setPositiveButton(“取消”, new OnClickListener() {

                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    result.cancel();                }            });            builder.setNegativeButton("确定", new OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    // TODO Auto-generated method stub                    result.confirm();                }            });            builder.show();            return true;        }        // js的确认框        @Override        public boolean onJsConfirm(android.webkit.WebView view, String url,                String message, JsResult result) {            // TODO Auto-generated method stub            return super.onJsConfirm(view, url, message, result);        }        // js的对话框        @Override        public boolean onJsPrompt(android.webkit.WebView view, String url,                String message, String defaultValue, JsPromptResult result) {            // TODO Auto-generated method stub            return super.onJsPrompt(view, url, message, defaultValue,                    result);        }    });}private void SetWebView() {    // TODO Auto-generated method stub    webView.setWebViewClient(new WebViewClient() {        @Override        // 页面开始加载方法        public void onPageStarted(WebView view, String url, Bitmap favicon) {            // TODO Auto-generated method stub            super.onPageStarted(view, url, favicon);            System.out.println("页面开始加载" + url);        }        @Override        // 页面完成加载        public void onPageFinished(WebView view, String url) {            // TODO Auto-generated method stub            super.onPageFinished(view, url);            System.out.println("页面已经完成加载" + url);        }        @Override        // 返回false,当前url交给当前webView处理        public boolean shouldOverrideUrlLoading(WebView view, String url) {            // TODO Auto-generated method stub            return false;        }    });}// 设置监听返回键的方法long exitTime;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    // TODO Auto-generated method stub    // 如果webview可以返回上一节就执行    if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {        webView.goBack();        return true;    }    //延时退出程序    if(keyCode == KeyEvent.KEYCODE_BACK){        if((System.currentTimeMillis()-exitTime)>2000){            Toast.makeText(MainActivity.this, "再按一次退出程序", 1).show();            exitTime = System.currentTimeMillis();        }else{            System.exit(0);        }        return true;    }    return super.onKeyDown(keyCode, event);};

}

<WebView android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/web_view"    android:layout_below="@+id/btn_web"/>
0 0