`
苏北浪子
  • 浏览: 11319 次
  • 性别: 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" />
下面是具体例子:
MainActivity.java
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>

 

 

分享到:
评论

相关推荐

    Android WebView 缓存详解

    Android WebView 缓存详解 一. 两种缓存类型: 页面缓存:加载一个网页时的html、JS、CSS等页面或者资源数据,这些缓存资源是由于浏览器 的行为而产生,开发者只能通过配置HTTP响应头影响浏览器的行为才能间接地...

    Android_WebView实例详解

    Android WebView 实例详解 Android WebView 是 Android 平台中一种特殊的组件,可以在应用程序中显示 web 页面。它基于 WebKit 内核浏览器,提供了一个可以在 Android 应用程序中嵌入网页浏览器的解决方案。 一、...

    实例详解Android Webview拦截ajax请求

    Android Webview 拦截 Ajax 请求的详细讲解 Android Webview 提供了页面加载及资源请求的钩子,但是对于 H5 的 Ajax 请求并没有提供干涉的接口。这意味着我们不能在 Webview 中干涉 JavaScript 发起的 HTTP 请求,...

    详解android 用webview加载网页(https和http)

    Android WebView 加载网页是移动应用开发中的一项基本需求。然而,在加载 HTTPS 和 HTTP 网页时,WebView 可能会出现一些问题,本文将详细介绍这两个错误的解决方法。 错误一:加载 HTTPS 请求的网页时,WebView ...

    WebView详解

    ### WebView详解 #### 概述 `WebView`是Android平台中用于展示网页内容的一个核心组件。它可以被视为一种轻量级的浏览器,允许开发者在应用程序内部嵌入网页,并提供一系列功能,如网页前后导航、放大缩小、文本...

    Android开发之常用框架WebView详解代码。超详细,送给初学者,完全掌握此控件

    Android开发之常用框架WebView详解代码。超详细,送给初学者,完全掌握此控件,博文介绍:http://blog.csdn.net/qq_21376985/article/details/51703282

    WebView详解案例加注释全套

    【WebView详解】是Android开发中的一个重要知识点,它允许在应用程序中内嵌网页浏览功能,无需启动浏览器即可展示网页内容。这个“WebView详解案例加注释全套”提供了丰富的示例和详细的注释,帮助开发者深入理解和...

    Android WebView详解和调用JS,androidrom开发书籍(csdn)————程序.pdf

    在Android应用开发中,WebView是一个重要的组件,它允许开发者在应用程序内部展示网页内容。这篇文档主要探讨了如何详细地使用Android WebView以及如何调用JavaScript,这对于Android ROM开发至关重要。以下是对这些...

    Android WebView 详解及简单实例

    WebView基本使用 WebView是View的一个子类,可以让你在activity中显示网页 可以在布局文件中写入WebView:比如下面这个... android:id=@+id/webview android:layout_width=fill_parent android:layout_height=fill

    webview详解和实例

    5. **WebView实例详解** - 加载本地HTML:可以使用`file:///android_asset/`前缀加载assets目录下的HTML文件。 - 下载功能:实现WebView点击链接下载文件,需监听`shouldInterceptRequest()`,并自定义下载逻辑。 ...

    android WebView控件的使用

    ### Android WebView 控件的使用详解 #### 一、引言 WebView是Android系统中的一个重要组件,主要用于在应用程序中展示Web页面。它可以帮助开发者快速地集成Web内容到原生应用中,实现网页浏览功能,这对于开发...

    史上最全WebView详解

    阐述WebKit详细讲解webView原理及应用,具体实例说明webView各种用法

    android_中webView控件详解

    ### Android中的WebView控件详解 #### 一、概述 WebView是Android系统提供的一个重要的控件,主要用于在应用程序中展示Web内容。它不仅能够加载并显示HTML文档,还支持JavaScript脚本执行,允许开发者通过Java与...

    Android Webview 加载 H5Video

    都是关键代码片段,因为每个项目每个人产生的问题不同,Video在webview中加载不出来原因很多,可能是客户端少了参数,也可能是前端出了问题,经过研究后对Android WebView 加载H5Video标签做此详解。 博客地址 ...

    Android的WebView的基本使用

    **Android的WebView基础使用详解** 在Android开发中,WebView是一个非常重要的组件,它允许应用程序内嵌入网页内容,实现与网页交互,甚至加载本地或远程HTML资源。本篇将详细介绍WebView的基本使用方法,帮助...

    Android studio点击跳转WebView详解

    Android studio点击跳转WebView详解 Android studio点击跳转WebView是Android开发中一个常见的功能,主要用于在Android应用程序中跳转到WebView页面,显示网页内容。下面将详细介绍Android studio点击跳转WebView的...

    android webView.pptx

    ### Android WebView 开发使用详解 #### 一、WebView简介与应用场景 WebView是Android提供的一种用于显示Web内容的组件。它可以加载HTML页面,并且能够与页面中的JavaScript交互,从而实现更丰富的应用功能。...

Global site tag (gtag.js) - Google Analytics