WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。

webview有两个方法:setWebChromeClient 和 setWebClient

setWebClient:主要处理解析,渲染网页等浏览器做的事情

setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等

WebViewClient就是帮助WebView处理各种通知、请求事件的。

在AndroidManifest.xml设置访问网络权限:

“`

  1. 控件:
  2. ```
  3. <WebView
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:id="@+id/webView"
  7. />

用途一:加载本地/Web资源

实例

  1. public class MainActivity extends Activity {
  2. private EditText et_address=null;
  3. private WebView webview=null;
  4. private ProgressDialog pd=null;
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. requestWindowFeature(Window.FEATURE_NO_TITLE);
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. et_address=(EditText) findViewById(R.id.ed_address);
  11. webview=(WebView) findViewById(R.id.webview);
  12. pd=new ProgressDialog(this);
  13. pd.setMessage("正在加载");
  14. WebSettings setting=webview.getSettings();
  15. setting.setSupportZoom(true);
  16. setting.setBuiltInZoomControls(true);
  17. webview.setWebViewClient(new WebViewClient()
  18. {
  19. @Override
  20. public void onPageStarted(WebView view, String url, Bitmap favicon) {
  21. // TODO Auto-generated method stub
  22. pd.show();
  23. }
  24. @Override
  25. public void onPageFinished(WebView view, String url) {
  26. // TODO Auto-generated method stub
  27. pd.dismiss();
  28. }
  29. }
  30. );
  31. }
  32. public void click(View view)
  33. {
  34. String address=et_address.getText().toString().trim();
  35. if(TextUtils.isEmpty(address))
  36. {
  37. address="http://192.168.247.1:8080";
  38. }
  39. webview.loadUrl(address);
  40. }
  41. @Override
  42. public boolean onKeyDown(int keyCode, KeyEvent event) {
  43. // TODO Auto-generated method stub
  44. if(keyCode==KeyEvent.KEYCODE_BACK&&webview.canGoBack())
  45. {
  46. webview.goBack();
  47. return true;
  48. }
  49. return super.onKeyDown(keyCode, event);
  50. }
  51. @Override
  52. public boolean onCreateOptionsMenu(Menu menu) {
  53. // TODO Auto-generated method stub
  54. menu.addSubMenu(0, 0, 0, "刷新");
  55. menu.addSubMenu(0, 0, 1, "后退");
  56. menu.addSubMenu(0, 0, 2, "前进");
  57. return super.onCreateOptionsMenu(menu);
  58. }
  59. @Override
  60. public boolean onOptionsItemSelected(MenuItem item) {
  61. // TODO Auto-generated method stub
  62. switch (item.getOrder()) {
  63. case 0:
  64. webview.reload();
  65. break;
  66. case 1:
  67. if(webview.canGoBack())
  68. {
  69. webview.goBack();
  70. }else
  71. {
  72. Toast.makeText(getApplicationContext(), "已经到第一页了", 0).show();
  73. }
  74. break;
  75. case 2:
  76. if(webview.canGoForward())
  77. {
  78. webview.goForward();
  79. }else
  80. {
  81. Toast.makeText(getApplicationContext(), "已经是最后一页了", 0).show();
  82. }
  83. break;
  84. default:
  85. break;
  86. }
  87. return super.onOptionsItemSelected(item);
  88. }
  89. }

参考链接:webView的使用以及总结

http://www.360doc.com/content/14/0611/13/15210553_385676271.shtml

Android之webView入门的更多相关文章

  1. android 开发从入门到精通

    Android-Tips This is an awesome list of tips for android. If you are a beginner, this list will be t ...

  2. Android中webView和网页的交互

     Android中webView和网页的交互 Android中webView跟网页的交互式通过JavaScript进行的.具体步骤: 1.创建JavaScript,在点击的时候调用JavaScript ...

  3. 学Android开发,入门语言java知识点

    学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...

  4. Android 显示 WebView ,加载URL 时,向webview的 header 里面传递参数

    1.主要布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...

  5. Android Studio单元测试入门

    Android Studio单元测试入门 通常在开发Android app的时候经常会写一些小函数并验证它是否运行正确,通常做法我们是把这个函数放到某个界面(Activity上)执行一下,运行整个工程 ...

  6. Android中Webview使用自定义的javascript进行回调

    先说为什么需要讨论这个问题. 现在很多的手机应用,都可能会直接嵌入一个web页面.这样做的好处:一个是功能更新方便,维护起来容易,只需要维护服务器的页面即可,不需要更新客户端:另一个是功能通用,不仅a ...

  7. android使用Webview上传图片

    package com.example.webview; import java.io.File; import android.net.Uri;import android.os.Bundle;im ...

  8. Android之 -WebView实现离线缓存阅读

    前言 本篇博客要实现的是一个离线下载和离线阅读的功能,这是很多阅读类app都常见的一个功能,典型的应用就是网易新闻.什么是离线下载?其实这个概念是比较模糊,是离线之后下载呢,还是下载之后离线,但稍微有 ...

  9. 在Android的webview中定做js的alert,confirm和prompt对话框的方法

    在Android的webview中定制js的alert,confirm和prompt对话框的方法 http://618119.com/archives/2010/12/20/199.html 1.首先 ...

随机推荐

  1. java + jquery + ajax + json 交互

    前端js部分: $.ajax({ async:true, cache:false, type:"POST", dataType : 'json', url:"/shopp ...

  2. Nutch的配置以及动态网站的抓取

    http://blog.csdn.net/jimanyu/article/details/5619949 一:配置Nutch: 1.解压缩的nutch后,以抓取http://www.163.com/为 ...

  3. Java中各种(类、方法、属性)访问修饰符与修饰符的说明

    类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所 ...

  4. [Angularjs]ng-class,ng-class-even,ng-class-odd

    写在前面 最近在通过angularjs将数据绑定到前端,其中也涉及到很多新的东西,一些效果还是很有必要实现的.在使用中发现ng-class,ng-class-even.ng-class-odd的使用, ...

  5. JS 瀑布流布局

    瀑布流布局 HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  6. Jquery 鼠标事件解析

    1 mouseover与mousemove的区别: mouseover是当鼠标移动到对象时产生,只产生一次,这时如果继续在对象上移动,不会再产生mouseover事件,而是mousemove事件,mo ...

  7. js通过alert查看对象或数组内容

    var arr=new Array("Saab","Volvo","BMW"); for(i in arr ){ alert(i); //获 ...

  8. 游标、动态sql、异常

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlIAAAFeCAIAAADBl2bCAAAgAElEQVR4nOyddXgU197H12OEELxIkV

  9. 基于SSH2框架Struts2拦截器的登录验证实现(转)

        大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了.那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证.     修改数 ...

  10. ios开发 网络编程浅析(一)

    iphone包含了很多框架和库,从底层的套接字到不同层次的封装,可以方便地给程序添加网络功能. (1)BSD套接字.最底层的套接字,这是Unix网络开发常用的API.如果从其他系统移植程序,而程序用的 ...