`
king_tt
  • 浏览: 2232258 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android开发学习笔记WebView

 
阅读更多

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl("
http://www.google.com");
本地文件用:webView.loadUrl("
file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET" />

Java代码
收藏代码
  1. <spanstyle="font-size:medium;">packagecom.android.webview.activity;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.view.KeyEvent;
  5. importandroid.webkit.WebView;
  6. publicclassMainActivityextendsActivity{
  7. privateWebViewwebview;
  8. @Override
  9. publicvoidonCreate(BundlesavedInstanceState){
  10. super.onCreate(savedInstanceState);
  11. //实例化WebView对象
  12. webview=newWebView(this);
  13. //设置WebView属性,能够执行Javascript脚本
  14. webview.getSettings().setJavaScriptEnabled(true);
  15. //加载需要显示的网页
  16. webview.loadUrl("http://www.51cto.com/");
  17. //设置Web视图
  18. setContentView(webview);
  19. }
  20. @Override
  21. //设置回退
  22. //覆盖Activity类的onKeyDown(intkeyCoder,KeyEventevent)方法
  23. publicbooleanonKeyDown(intkeyCode,KeyEventevent){
  24. if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack()){
  25. webview.goBack();//goBack()表示返回WebView的上一页面
  26. returntrue;
  27. }
  28. returnfalse;
  29. }
  30. 在AndroidManifest.xml文件中的17行添加权限
  31. <?xmlversion="1.0"encoding="utf-8"?>
  32. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  33. package="com.android.webview.activity"
  34. android:versionCode="1"
  35. android:versionName="1.0">
  36. <uses-sdkandroid:minSdkVersion="10"/>
  37. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  38. <activityandroid:name=".MainActivity"
  39. android:label="@string/app_name">
  40. <intent-filter>
  41. <actionandroid:name="android.intent.action.MAIN"/>
  42. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  43. </intent-filter>
  44. </activity>
  45. </application>
  46. <uses-permissionandroid:name="android.permission.INTERNET"/>
  47. </manifest>
  48. </span>

第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET"/>

Java代码
收藏代码
  1. <spanstyle="font-size:medium;">MainActivity.java
  2. packagecom.android.webview.activity;
  3. importandroid.app.Activity;
  4. importandroid.os.Bundle;
  5. importandroid.view.KeyEvent;
  6. importandroid.webkit.WebView;
  7. importandroid.webkit.WebViewClient;
  8. publicclassMainActivityextendsActivity{
  9. privateWebViewwebview;
  10. @Override
  11. publicvoidonCreate(BundlesavedInstanceState){
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.main);
  14. webview=(WebView)findViewById(R.id.webview);
  15. //设置WebView属性,能够执行Javascript脚本
  16. webview.getSettings().setJavaScriptEnabled(true);
  17. //加载需要显示的网页
  18. webview.loadUrl("http://www.51cto.com/");
  19. //设置Web视图
  20. webview.setWebViewClient(newHelloWebViewClient());
  21. }
  22. @Override
  23. //设置回退
  24. //覆盖Activity类的onKeyDown(intkeyCoder,KeyEventevent)方法
  25. publicbooleanonKeyDown(intkeyCode,KeyEventevent){
  26. if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack()){
  27. webview.goBack();//goBack()表示返回WebView的上一页面
  28. returntrue;
  29. }
  30. returnfalse;
  31. }
  32. //Web视图
  33. privateclassHelloWebViewClientextendsWebViewClient{
  34. @Override
  35. publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){
  36. view.loadUrl(url);
  37. returntrue;
  38. }
  39. }
  40. }
  41. main.xml
  42. <?xmlversion="1.0"encoding="utf-8"?>
  43. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  44. android:orientation="vertical"
  45. android:layout_width="fill_parent"
  46. android:layout_height="fill_parent"
  47. >
  48. <WebView
  49. android:id="@+id/webview"
  50. android:layout_width="fill_parent"
  51. android:layout_height="fill_parent"
  52. />
  53. </LinearLayout>
  54. 在AndroidManifest.xml文件中的17行添加权限
  55. <?xmlversion="1.0"encoding="utf-8"?>
  56. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  57. package="com.android.webview.activity"
  58. android:versionCode="1"
  59. android:versionName="1.0">
  60. <uses-sdkandroid:minSdkVersion="10"/>
  61. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  62. <activityandroid:name=".MainActivity"
  63. android:label="@string/app_name">
  64. <intent-filter>
  65. <actionandroid:name="android.intent.action.MAIN"/>
  66. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  67. </intent-filter>
  68. </activity>
  69. </application>
  70. <uses-permissionandroid:name="android.permission.INTERNET"/>
  71. </manifest>
  72. </span>

分享到:
评论

相关推荐

    Android开发学习笔记 浅谈WebView

    第一种方法的步骤: ... 本地文件用:webView.loadUrl(“file:///android_asset/XX.html”); 本地文件存放在:assets 文件中 3.调用Activity的setContentView( )方法来显示网页视图 4.用WebView点链接看了很多页以

    Android 学习笔记(1)--永远不变的Hello World

    【Android 学习笔记(1)--永远不变的Hello World】 Android 开发是移动应用开发领域的重要组成部分,尤其对于新手而言,"Hello, World!" 是入门的起点。在这个学习笔记中,我们将探讨如何创建第一个简单的 Android...

    Android学习笔记——Http通信 源码

    在Android开发中,网络通信是不可或缺的一部分,而HTTP通信是其中最基础且广泛使用的协议之一。这篇"Android学习笔记——Http通信 源码"主要探讨了如何在Android应用中利用WebView控件加载网页以及使用ImageView控件...

    Android学习笔记

    这份"Android学习笔记"提供了深入学习Android开发的基础知识和实践经验。以下是对标题、描述及标签所涉及知识点的详细说明: 1. **Android**: 它是由Google主导的开放源代码项目,基于Linux内核。Android系统提供了...

    Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源码)

    在Android开发中,意图(Intent)是连接应用组件的桥梁,用于在不同的组件之间传递消息,启动服务或打开新的Activity。意图筛选器(IntentFilter)则是组件(如Activity或BroadcastReceiver)用来声明它能响应哪些类型的...

    Android学习笔记(二九):嵌入浏览器.doc

    在Android开发中,嵌入浏览器功能通常通过使用WebView组件来实现。WebView是一个能够加载和显示网页的视图,允许开发者在应用程序内部呈现互联网内容。在本文中,我们将深入探讨如何在Android应用中使用WebView及其...

    MarkdownView-Android,markdownview是一个android的webview,它可以加载markdown文本或文件并显示为html,扩展了android的webview。.zip

    开发者可以通过查看这些文件来学习项目的架构,理解其工作原理,并根据自己的需求进行定制化开发。 总之,MarkdownView-Android 是一个强大的Android组件,它简化了在Android应用中处理Markdown内容的过程,为...

    Android开发自学笔记(五):使用代码控制界面

    这仅仅是Android开发的冰山一角,后续还需要学习更多的概念,如数据持久化、网络请求、异步处理等。但掌握这些基础知识,是构建复杂应用的基础,也是成为一名合格的Android开发者所必需的技能。

    cocos2dx_lua开发笔记

    【cocos2dx_lua开发笔记】是一篇个人实践总结,主要涵盖了使用cocos2dx_lua进行游戏开发的一些关键点,包括图层创建、WebView的使用、动态布局进度条的实现以及骨骼动画的操作方法。以下是对这些知识点的详细解析: ...

    Android大作业.zip

    这个项目可能是一个学生的大作业,用于展示他们在Android开发中的学习成果。从描述中我们可以推测,这个作业涉及到多个HTML文件、CSS样式表以及JavaScript脚本,这些都是构建交互式Web界面的关键元素。 首先,我们...

    Android 学习实例整合

    在Android开发领域,掌握各种应用实例的实现是提升技能的关键步骤。"Android学习实例整合"是一个集合了多种功能模块的项目,旨在帮助开发者深入理解Android应用程序的构建过程。以下是这个项目涉及的一些核心知识点...

    Android课程实验-线性布局实验-限制布局实验-表格布局实验-自制的浏览器.zip

    通过这些实验,学生不仅能够学习到Android应用的基本构建块,还能了解Android开发环境的使用,如Android Studio IDE,以及XML布局文件的编写和调试技巧。这些实验有助于巩固理论知识,提高实际编程能力,为今后的...

    android安卓笔记

    ### Android 安卓笔记知识点...通过以上内容可以看出,Android开发涉及面非常广泛,从基本概念到高级特性都有所涵盖。掌握这些知识点不仅有助于开发高质量的应用程序,还能帮助开发者解决实际开发中遇到的各种问题。

    android pdf demo

    例如,可以使用Android的WebView加载PDF.js来实现一个简单的PDF查看器,或者使用更专业的库来提供更丰富的功能,如注释、书签和搜索等。 3. **PDF文件的加载**:加载PDF文件通常有两种方式,一是从本地存储中读取,...

    Android电子书阅读器.zip

    总结,开发一个Android电子书阅读器需要掌握Android开发基础,理解电子书格式,注重UI设计,熟悉数据存储和云同步,以及进行性能优化。通过不断的实践和学习,可以打造出满足用户需求、提供优质阅读体验的应用。

    android Mi-Notes源码.rar

    《Android Mi_Notes源码解析》 Mi_Notes是一款由小米公司开发的安卓平台上的笔记应用,其源码对于我们深入理解Android应用开发...这对于提高我们的Android开发能力,尤其是对复杂应用的理解和重构,具有极大的帮助。

    Android应用源码安卓通用电子书制作模版

    总的来说,这个“Android应用源码安卓通用电子书制作模版”是一个学习和实践Android开发,特别是阅读应用开发的好资源。通过深入研究和修改这个模版,开发者可以创建出满足特定需求的电子书应用。

Global site tag (gtag.js) - Google Analytics