android开发之WebView使用(非详解)
来源:互联网 发布:mysql where 优先级 编辑:程序博客网 时间:2024/05/16 12:22
这个,这个WebView呀,是个好东西;可不是嘛!你想想好,你只需要敲几行代码,就能展示出与真实App开发出来的效果几乎一样!
那好,我们就来看看那神奇的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"/>
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;}}};};@Overrideprotected 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(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {loadUrl(view,url);return true;}});wv_index.setWebChromeClient(new WebChromeClient(){@Overridepublic 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>@Overridepublic 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(){@Overridepublic void run() {isExit = false;//取消退出}}, 3000); //如果3秒内没有再次按下返回键,则启动定时器取消掉刚才执行的退出任务}else{finish();System.exit(0);}}}以上代码,我要特地的说明一下几个注意点:
第一点:请大伙在请求网络数据时,一定要使用线程,也就是为什么以上代码在调用loadUrl()方法时是放在线程中的。
第二点:为了用户的体验效果,如果我们不重写onKeyDown(),那么,当用户点击返回键时,就是应用程序finish之日。
0 0
- android开发之WebView使用(非详解)
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView详解
- Android开发之WebView组件的使用详解
- Android开发之WebView组件的使用详解
- Android开发之WebView组件的使用详解
- Android 开发之webview使用
- android开发之WebView使用
- 全面的android webview开发使用详解
- Android WebView 开发详解
- Android WebView 开发详解
- Android Webview 开发详解
- Android开发之WebView的使用
- Android混合开发之WebView使用总结
- typedef定义函数类型
- Plsql developer插入中文乱码
- WCF基础—千里之行始于足下(应用篇)
- servlet、genericservlet、httpservlet之间的区别
- VELT-0.1.3开发:汇编支持
- android开发之WebView使用(非详解)
- [学习笔记]HTML基础
- C++文件读写详解(ofstream,ifstream,fstream)
- 51单片机第四弹---矩阵键盘
- 笔记VISIO:常见问题解决办法
- Mysql 下创建root用户
- github fork后与源项目保持同步
- [学习笔记]CSS基础
- HashMap原理