`
韩悠悠
  • 浏览: 842629 次
  • 性别: 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" />

package com.android.webview.activity; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.webkit.WebView; 
 
public class MainActivity extends Activity { 
    private WebView webview; 
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        //实例化WebView对象 
        webview = new WebView(this); 
        //设置WebView属性,能够执行Javascript脚本 
        webview.getSettings().setJavaScriptEnabled(true); 
        //加载需要显示的网页 
        webview.loadUrl("http://www.51cto.com/"); 
        //设置Web视图 
        setContentView(webview); 
    } 
     
    @Override
    //设置回退 
    //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 
            webview.goBack(); //goBack()表示返回WebView的上一页面 
            return true; 
        } 
        return false; 
}
在AndroidManifest.xml文件中的17行添加权限
 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.webview.activity"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />
 
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>

 

 

第二种方法的步骤:
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"/>

 

MainActivity.java
package com.android.webview.activity; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
 
public class MainActivity extends Activity { 
    private WebView webview; 
    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        webview = (WebView) findViewById(R.id.webview); 
        //设置WebView属性,能够执行Javascript脚本 
        webview.getSettings().setJavaScriptEnabled(true); 
        //加载需要显示的网页 
        webview.loadUrl("http://www.51cto.com/"); 
        //设置Web视图 
        webview.setWebViewClient(new HelloWebViewClient ()); 
    } 
     
    @Override
    //设置回退 
    //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { 
            webview.goBack(); //goBack()表示返回WebView的上一页面 
            return true; 
        } 
        return false; 
    } 
     
    //Web视图 
    private class HelloWebViewClient extends WebViewClient { 
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) { 
            view.loadUrl(url); 
            return true; 
        } 
    } 
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >   
    <WebView  
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
</LinearLayout>
在AndroidManifest.xml文件中的17行添加权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.webview.activity"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />
 
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>

 

 

分享到:
评论
1 楼 burnquist 2012-03-27  
谢谢,很有用

相关推荐

    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