webview
2015-07-21 17:39
399 查看
package com.example.administrator.webview; import android.app.ProgressDialog; import android.content.Intent; import android.net.Uri; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.EditText; public class MainActivity extends ActionBarActivity implements Button.OnClickListener{ private Button btn_open_system_browser; private Button btn_webview; private EditText editText; private WebView webview; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn_open_system_browser = (Button)findViewById(R.id.btn_open_system_browser); btn_webview = (Button)findViewById(R.id.btn_webview); editText = (EditText)findViewById(R.id.editText); webview = (WebView)findViewById(R.id.webview); btn_open_system_browser.setOnClickListener(this); btn_webview.setOnClickListener(this); } @Override public void onClick(View v) { Uri uri = Uri.parse(editText.getText().toString()); switch (v.getId()){ case R.id.btn_open_system_browser: /** * 打开系统浏览器 */ Log.e("main","sys"); Intent intent = new Intent(Intent.ACTION_VIEW,uri); startActivity(intent); break; case R.id.btn_webview: Log.e("main", "webview"); //需要 访问网络的权限 webview.loadUrl(uri.toString()); //还是会在系统浏览器中打开 //网页在webview中打开 webview.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; //返回true 在webview中打开 返回false 在第三方中打开 } }); //启用javascript WebSettings settings = webview.getSettings(); settings.setJavaScriptEnabled(true); // 启用缓存 settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //网页加载 loading 进度条 webview.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { if(newProgress == 100){ closeDialog(); }else{ openDialog(newProgress); } super.onProgressChanged(view, newProgress); } private void closeDialog(){ if(progressDialog != null && progressDialog.isShowing()){ progressDialog.dismiss(); progressDialog = null; } } private void openDialog(int newProgress){ if(progressDialog == null){ progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setTitle("网页加载中"); progressDialog.setMessage("网页加载中,请稍后。。。"); progressDialog.setIcon(R.mipmap.ic_launcher); progressDialog.setProgress(newProgress); progressDialog.show(); }else{ progressDialog.setProgress(newProgress); } } }); break; } } //返回键 重写 webview后退 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ if(webview.canGoBack()){ Log.e("goBack", "yes"); webview.goBack(); return true; }else{ Log.e("goBack","no"); System.exit(0); } } return super.onKeyDown(keyCode, event); } }
相关文章推荐
- android WebView组件使用总结
- 解决video标签在安卓webview下无法自动播放问题
- Android webview与js交换JSON对象数据示例
- android中WebView和javascript实现数据交互实例
- Android的webview支持HTML5的离线应用功能详细配置
- Android开发之WebView组件的使用解析
- Android中实现Webview顶部带进度条的方法
- Android中访问证书有问题的SSL网页的方法
- 基于Android中Webview使用自定义的javascript进行回调的问题详解
- Android使用WebView播放flash的方法
- android webview 中localStorage无效的解决方法
- Android使用原生组件WebView加载网页和数据的方法
- android webview 简单浏览器实现代码
- android 中 webview 怎么用 localStorage
- Android中在WebView里实现Javascript调用Java类的方法
- Android中WebView图片实现自适应的方法
- Android开发笔记之探秘WebView
- Unity3D游戏引擎实现在Android中打开WebView的实例
- android教程使用webview访问https的url处理sslerror示例
- Android中的WebView详细介绍