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
- android 直接打开指定网页
- android 指定浏览器打开网页
- C#直接调用IE打开指定的网页文件
- android指定浏览器打开特定网页
- 按钮打开指定网页
- Android浏览器直接打开网页上的文档
- Android UI 使用HTML布局(直接打开服务器网页)
- Android UI 使用HTML布局(直接打开服务器网页)
- Android UI 使用HTML布局(直接打开服务器网页)
- android 发送通知栏消息,点击后打开指定网页
- html打开网页直接定位
- 利用VBScript打开指定网页
- Winform中直接打开指定文件
- Android打开指定应用程序
- 通过网页直接打开QQ聊天窗口
- 网页上点击。直接打开QQ聊天!!!
- 打开网页直接弹出QQ对话框
- Android 打开网页搜索关键词
- 国人当自强:两岸三地在线编程学习网站大搜罗
- oracle中WMSYS.WM_CONCAT函数的版本差异
- WPF窗体由小到大最基本的写法
- smarty foreach
- 再看 --Handler sendMessage 与 obtainMessage (sendToTarget)比较
- android 直接打开指定网页
- 最优化--等式约束最优性条件
- js读取json格式
- HttpLive 总结:
- MANAGED & UNMANAGED (DYNAMIC )TEXTURES IN LIBGDX (OPENGL CONTEXT LOSS)
- Android机顶盒 获取当前连接网络的Ip地址
- C++中const笔记和其他
- WPF listbox异步绑定数据IsAsync=True
- [转]Go程序GC优化经验分享