android 直接打开指定网页

来源:互联网 发布:js插件 编辑:程序博客网 时间:2024/05/16 13:00

java

package c.c.c;import android.app.Activity;import android.net.Uri;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.KeyEvent;import android.view.Menu;import android.view.MenuItem;import android.webkit.JsResult;import android.webkit.WebChromeClient;import android.webkit.WebView;import android.webkit.WebViewClient;public class webActivity extends Activity {WebView wv;private String errorHtml = ""; private static final String TAG = webActivity.class.getSimpleName(); ProgressDialog pd;Handler handler;Intent intent = new Intent();@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.web);////无网络/*errorHtml = "<html><body><h1>Page not find!</h1></body></html>";  wv = (WebView) findViewById(R.id.wv); wv.getSettings().setJavaScriptEnabled(true);wv.loadUrl("http://www.baidu.com");  Log.i(TAG, "--onCreate--");          //设置web视图的客户端         wv.setWebViewClient(new MyWebViewClient()); wv.getSettings().setDefaultTextEncodingName("UTF-8");  //设置默认的显示编码         */init();// 执行初始化函数loadurl(wv, http://www.baidu.com);handler = new Handler() {public void handleMessage(Message msg) {// 定义一个Handler,用于处理下载线程与UI间通讯if (!Thread.currentThread().isInterrupted()) {switch (msg.what) {case 0:pd.show();// 显示进度对话框break;case 1:pd.hide();// 隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。break;}}super.handleMessage(msg);}};}public void init() {// 初始化wv = (WebView) findViewById(R.id.wv);wv.getSettings().setJavaScriptEnabled(true);// 可用JSwv.setScrollBarStyle(0);// 滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上wv.setWebViewClient(new WebViewClient() {//public boolean shouldOverrideUrlLoading(final WebView view,final String url) {loadurl(view, url);// 载入网页return true;}// 重写点击动作,用webview载入});wv.setWebChromeClient(new WebChromeClient() {public void onProgressChanged(WebView view, int progress) {// 载入进度改变而触发if (progress == 100) {handler.sendEmptyMessage(1);// 如果全部载入,隐藏进度对话框}super.onProgressChanged(view, progress);}});pd = new ProgressDialog(webActivity.this);pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);pd.setMessage("数据载入中,请稍候!");}/*//无网络    protected void onResume() {                super.onResume();            Log.i(TAG, "--onResume()--");     }            public class MyWebViewClient extends WebViewClient{                   @Override        public boolean shouldOverrideUrlLoading(WebView view, String url) {               Log.i(TAG, "-MyWebViewClient->shouldOverrideUrlLoading()--");              view.loadUrl(url);             return true;         }                   @Override        public void onPageStarted(WebView view, String url, Bitmap favicon) {               Log.i(TAG, "-MyWebViewClient->onPageStarted()--");             super.onPageStarted(view, url, favicon);         }                   @Override        public void onPageFinished(WebView view, String url) {               Log.i(TAG, "-MyWebViewClient->onPageFinished()--");             super.onPageFinished(view, url);         }                             @Override        public void onReceivedError(WebView view, int errorCode,                 String description, String failingUrl) {             super.onReceivedError(view, errorCode, description, failingUrl);                             Log.i(TAG, "-MyWebViewClient->onReceivedError()--\n errorCode="+errorCode+" \ndescription="+description+" \nfailingUrl="+failingUrl);                  //这里进行无网络或错误处理,具体可以根据errorCode的值进行判断,做跟详细的处理。                   view.loadData(errorHtml, "text/html", "UTF-8");                                     }     } */        public void loadurl(final WebView view, final String url) {new Thread() {public void run() {handler.sendEmptyMessage(0);view.loadUrl(url);// 载入网页}}.start();}     // 捕捉返回键public boolean onKeyDown(int keyCode, KeyEvent event) {// 捕捉返回键if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {wv.goBack();return true;} else if (keyCode == KeyEvent.KEYCODE_BACK) {ConfirmExit();// 按了返回键,但已经不能返回,则执行退出确认return true;}return super.onKeyDown(keyCode, event);}public void ConfirmExit() {// 退出确认AlertDialog.Builder ad = new AlertDialog.Builder(webActivity.this);ad.setTitle("退出");ad.setMessage("真的要退出吗?");ad.setPositiveButton("是", new DialogInterface.OnClickListener() {// 退出按钮public void onClick(DialogInterface dialog, int i) {webActivity.this.finish();// 关闭activity}});ad.setNegativeButton("否", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int i) {// 不退出不用执行任何操作}});ad.show();// 显示对话框}   /** * 菜单项 */@Overridepublic boolean onCreateOptionsMenu(Menu menu) {menu.add(0, 1, 0, "退出");return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if (item.getItemId() == 1) {this.finish();System.exit(0);}return super.onOptionsItemSelected(item);}}

代码参考某文章

<!-- 网络权限-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


 

0 0
原创粉丝点击