android开发之WebView使用(非详解)
2015-01-15 23:34
721 查看
这个,这个WebView呀,是个好东西;可不是嘛!你想想好,你只需要敲几行代码,就能展示出与真实App开发出来的效果几乎一样!
那好,我们就来看看那神奇的WebView:‘
第一步:人人都说,WebView一定要添加啥子网络权限才能获取网络数据,其实不然,你可以转弯一下,如果我的这些数据是本地的呢?像:“ffile:///xxxx”,但这样的话需要把此文件存放在assets文件中,这就不需要添加权限了!哈哈!有点那个啥!不过大伙如今是信息时代,网络权限该添加的咱们还得添加,只是心里知道一件事情并没有绝对就OK!
第二步:在布局文件中,使用WebView控件:
在代码中获取WebView对象:
以上代码,我要特地的说明一下几个注意点:
第一点:请大伙在请求网络数据时,一定要使用线程,也就是为什么以上代码在调用loadUrl()方法时是放在线程中的。
第二点:为了用户的体验效果,如果我们不重写onKeyDown(),那么,当用户点击返回键时,就是应用程序finish之日。
那好,我们就来看看那神奇的WebView:‘
第一步:人人都说,WebView一定要添加啥子网络权限才能获取网络数据,其实不然,你可以转弯一下,如果我的这些数据是本地的呢?像:“ffile:///xxxx”,但这样的话需要把此文件存放在assets文件中,这就不需要添加权限了!哈哈!有点那个啥!不过大伙如今是信息时代,网络权限该添加的咱们还得添加,只是心里知道一件事情并没有绝对就OK!
<!-- 网络权限 --> <uses-permission android:name="android.permission.INTERNET" />
第二步:在布局文件中,使用WebView控件:
<WebView android:id="@+id/wv_index" android:layout_width="match_parent" android:layout_height="match_parent"/>
在代码中获取WebView对象:
public class Index_Activity extends BaseActivity { private WebView wv_index; private ProgressDialog mDialog; private final static int SHOW = 0; private final static int HIDE = 1; private Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { super.handleMessage(msg); if(!Thread.currentThread().isInterrupted()) { switch(msg.what) { case SHOW: mDialog.show(); break; case HIDE: mDialog.dismiss(); break; } } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); loadUrl(wv_index,"http://baidu.com/"); } private void initView() { wv_index = (WebView) findViewById(R.id.wb_index); wv_index.getSettings().setJavaScriptEnabled(true); wv_index.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); wv_index.getSettings().setDefaultZoom(ZoomDensity.MEDIUM); wv_index.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); wv_index.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { loadUrl(view,url); return true; } }); wv_index.setWebChromeClient(new WebChromeClient(){ @Override public void onProgressChanged(WebView view, int newProgress) { if(newProgress == 100) { handler.sendEmptyMessage(1); } super.onProgressChanged(view, newProgress); } }); mDialog = new ProgressDialog(this); mDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); mDialog.setMessage(getResources().getString(R.string.load_data)); } private void loadUrl(final WebView view, final String url) { new Thread(){ public void run(){ handler.sendEmptyMessage(0); view.loadUrl(url);//载入网页 } }.start(); }<pre name="code" class="java"><span style="white-space:pre"> </span>@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && wv_index.canGoBack()){ wv_index.goBack(); // goBack()表示返回WebView的上一页面 }else if(keyCode == KeyEvent.KEYCODE_BACK){ //调用双击退出方法 exitBy2Click(); } return false; } //双击退出方法 private void exitBy2Click() { Timer tExit = null; if(isExit == false) { isExit = true;//准备退出 Toast.makeText(this,"再按一次退出程序",Toast.LENGTH_LONG).show(); tExit = new Timer(); tExit.schedule(new TimerTask(){ @Override public void run() { isExit = false;//取消退出 } }, 3000); //如果3秒内没有再次按下返回键,则启动定时器取消掉刚才执行的退出任务 }else{ finish(); System.exit(0); } } }
以上代码,我要特地的说明一下几个注意点:
第一点:请大伙在请求网络数据时,一定要使用线程,也就是为什么以上代码在调用loadUrl()方法时是放在线程中的。
第二点:为了用户的体验效果,如果我们不重写onKeyDown(),那么,当用户点击返回键时,就是应用程序finish之日。
相关文章推荐
- Android开发:最全面、最易懂的Webview使用详解
- Android开发之WebView组件的使用详解
- Android开发中使用WebView控件浏览网页的方法详解
- Android开发:最全面、最易懂的Webview使用详解
- Android开发:最全面、最易懂的Webview使用详解
- Android客户端开发即WebView组件的使用详解
- Android开发:最全面、最易懂的Webview使用详解
- Android开发_WebView组件使用详解_LoadUrl直接显示网页内容
- Android开发_WebView组件使用详解_LoadUrl直接显示网页内容
- Android开发之WebView组件的使用详解
- 全面的android webview开发使用详解
- android开发android webView 使用方法
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解
- 基于Android中Webview使用自定义的javascript进行回调的问题详解
- Android应用开发之(WebView中loadData与loadDataWithBaseURL的使用上的区别)
- Android游戏开发3:SurfaceView类使用详解
- Android学习 - WebView组件的使用详解
- Android——WebView组件的使用详解
- Android开发 WebView使用注意事项
- 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解