实现代码——WebView案例

来源:互联网 发布:python 余弦相似度 包 编辑:程序博客网 时间:2024/04/20 10:50

    • MainActivityjava
    • CodeActivityjava
    • activity_mainxml
    • activity_codexml

MainActivity.java

package com.demo.webviewdemo;import android.app.Activity;import android.app.ProgressDialog;import android.content.Intent;import android.os.Bundle;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Button;public class MainActivity extends Activity {    private WebView webview;    private WebSettings websettings;    private ProgressDialog dia_pro;    private Button but_code;    private Intent intent;    String url = "http://m.baidu.com/from=1086k/bd_page_type=1/ssid=0/uid=0/pu=usm%400%2Csz%401320_1002%2Cta%40iphone_2_4.4_2_6.1/baiduid=9DD46FD853248EA9FFF4D0466E49E8EA/w=0_10_%E6%98%86%E4%BB%91+%E5%B0%8F%E8%AF%B4/t=iphone/l=3/tc?ref=www_iphone&lid=12112811004381059221&order=1&vit=osres&tj=www_normal_1_0_10_title&m=8&srd=1&cltj=cloud_title&dict=30&title=%E6%98%86%E4%BB%91-%E5%B0%8F%E8%AF%B4%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB-%E5%87%A4%E6%AD%8C-%E5%8A%AA%E5%8A%AA%E4%B9%A6%E5%9D%8A&sec=7852&di=1d4cfe75a5eba2a0&bdenc=1&tch=124.0.289.149.2.161&nsrc=IlPT2AEptyoA_yixCFOxXnANedT62v3IEQGG_yNZ0Cu5iJXte4viZQRAVSLnKXbTUS3bdD4PsRsYwk_a_GUe6so4g43";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        /*设置标题栏*/        //requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);        setContentView(R.layout.activity_main);        //getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.activity_title);        but_code= (Button) findViewById(R.id.but_code);        webview = (WebView) findViewById(R.id.webView);        this.setTitle("昆仑");        webview.loadUrl(url);//加载Web资源        /*使网页能在WebView中打开*/        webview.setWebViewClient(new WebViewClient(){            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                // TODO Auto-generated method stub                view.loadUrl(url);                return true;//返回true时网页在WebView中打开            }        });        /*启用支持JavaScript*/        websettings = webview.getSettings();        websettings.setJavaScriptEnabled(true);        /*使WebView优先使用缓存加载*/        //websettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);        /*制作进度条窗口判断进度*/        webview.setWebChromeClient(new WebChromeClient(){            @Override            public void onProgressChanged(WebView view, int newProgress) {                // TODO Auto-generated method stub                if(newProgress==100){                    closeDialog();                } else {                    openDialog(newProgress);                }            }            private void openDialog(int newProgress) {                if(dia_pro==null){                    dia_pro = new ProgressDialog(MainActivity.this);                    dia_pro.setTitle("正在加载");                    dia_pro.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);                    dia_pro.setProgress(newProgress);                    dia_pro.show();                } else{                    dia_pro.setProgress(newProgress);                }            }            private void closeDialog() {                if(dia_pro!=null && dia_pro.isShowing()){                    dia_pro.dismiss();                    dia_pro = null;                }            }        });        /*按键跳到实现代码界面*/        but_code.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View arg0) {                // TODO Auto-generated method stub                intent = new Intent(MainActivity.this,CodeActivity_2.class);                startActivity(intent);            }        });    }    /*改写物理按键实现页面返回*/    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        // TODO Auto-generated method stub        if(keyCode==KeyEvent.KEYCODE_BACK){            if(webview.canGoBack()){                webview.goBack();                return true;            }else {                System.exit(0);            }        }        return super.onKeyDown(keyCode, event);    }}

CodeActivity.java

package com.demo.webviewdemo;import android.app.Activity;import android.app.ProgressDialog;import android.os.Bundle;import android.view.KeyEvent;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;public class CodeActivity_2 extends Activity{    private WebView webview;    String url="http://m.baidu.com/";    private WebSettings websettings;    private ProgressDialog dia_pro;    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_code);        webview = (WebView) findViewById(R.id.webView_code);        webview.loadUrl(url);//加载Web资源        /*使网页能在WebView中打开*/        webview.setWebViewClient(new WebViewClient(){            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                // TODO Auto-generated method stub                view.loadUrl(url);                return true;            }        });        /*启用支持JavaScript*/        websettings = webview.getSettings();        websettings.setJavaScriptEnabled(true);        /*使WebView优先使用缓存加载*/        //websettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);        /*制作进度条窗口判断进度*/        webview.setWebChromeClient(new WebChromeClient(){            @Override            public void onProgressChanged(WebView view, int newProgress) {                // TODO Auto-generated method stub                if(newProgress==100){                    closeDialog();                } else {                    openDialog(newProgress);                }            }            private void openDialog(int newProgress) {                if(dia_pro==null){                    dia_pro = new ProgressDialog(CodeActivity_2.this);                    dia_pro.setTitle("正在加载");                    dia_pro.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);                    dia_pro.setProgress(newProgress);                    dia_pro.show();                } else{                    dia_pro.setProgress(newProgress);                }            }            private void closeDialog() {                if(dia_pro!=null && dia_pro.isShowing()){                    dia_pro.dismiss();                    dia_pro = null;                }            }        });    }    /*改写物理按键实现页面返回*/    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        // TODO Auto-generated method stub        if(keyCode==KeyEvent.KEYCODE_BACK){            if(webview.canGoBack()){                webview.goBack();                return true;            }else {                System.exit(0);            }        }        return super.onKeyDown(keyCode, event);    }}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <Button        android:id="@+id/but_code"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="实现代码" />    <WebView        android:id="@+id/webView"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_alignParentLeft="true"        android:layout_alignParentTop="true" /></LinearLayout>

activity_code.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/webView_code"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>
0 0
原创粉丝点击