`

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> 

 

效果图:

 

 

 

 

转自:http://liangruijun.blog.51cto.com/3061169/647456

分享到:
评论

相关推荐

    Android开发学习笔记 浅谈WebView

    1.在要Activity中实例化WebView组件:WebView webView = new WebView(this); 2.调用WebView的loadUrl()方法,设置WevView要显示的网页:  互联网用:webView.loadUrl(“http://www.google.com”);  本地文件用:...

    浅谈WebView.doc

    在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内部嵌入一个浏览器功能,以便用户可以直接在应用中浏览网页内容。WebView基于WebKit渲染引擎,提供了与浏览器类似的功能,如加载网页、执行...

    com.google.android.webview.apk

    webview全称叫做Android System WebView,它是Android生态系统的重要组成部分,也是Chrome浏览器的内核。可以让你的手机变得瞬间畅通,它会及时优化网页相关数据,有着接入式的操作体验数据,各种类型的应用程序可...

    Android WebView 去除标题

    在Android中,我们可以通过以下方式创建一个WebView: ```java WebView webView = new WebView(this); webView.loadUrl("https://www.example.com"); setContentView(webView); ``` 这段代码会创建一个新的WebView...

    Android Studio 开发的WebView 框架源码

    接下来,我们需要在Activity的Java代码(如`MainActivity.java`)中初始化并配置WebView: ```java import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; ...

    Android webview加载网页.zip

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,无需跳转到外部浏览器。这个“Android webview加载网页.zip”文件可能包含了一个示例项目或者教程,帮助开发者理解...

    android webview开发应用

    这个“android webview开发应用”显然提供了相关的源代码,为开发者提供了一个学习和研究的实例。以下是一些关于Android WebView开发的关键知识点: 1. **WebView介绍**:WebView是Android SDK中的一个类,它继承自...

    Android 基于x5Webview 浏览文件 office文档

    在Android开发中,为了提供用户友好的体验,有时我们需要在应用程序内部查看和处理Office文档,如Word、Excel或PowerPoint。X5WebView是腾讯QQ浏览器团队开源的一个高性能、跨平台的WebView组件,它基于Chromium内核...

    Android实现WebView懒加载

    在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中嵌入网页内容,实现类似浏览器的功能。然而,对于大型或者资源丰富的网页,WebView的加载性能可能会成为用户体验的一个瓶颈。"Android实现...

    android java 通用开发 自适应密度 webview

    1. **WebView组件**:Android中的WebView是一个系统控件,它允许开发者在应用程序中加载并显示网页内容。通过WebView,我们可以将已有的Web应用嵌入到Android应用中,减少原生开发的工作量。 2. **HTML5**:HTML5是...

    webview浏览器

    【标题】:深入理解WebView浏览器在Android开发中的应用 【描述】:WebView是Android系统提供的一种用于在应用程序中展示网页内容的组件。它基于WebKit渲染引擎,允许开发者将网页集成到原生应用中,实现类似浏览器...

    Android代码-Android-X5WebView基本封装

    Android-X5WebView基本封装和使用 通过OkHttp拦截器、自定义CookieJar有效完成客户端与H5端的Cookie同步管理 监听WebView的加载进度 滚动条的设置(隐藏或者显示,内侧显示还是外侧显示) 优化X5WebView的预加载问题...

    html转webView然后在转成pdf文件

    在开发Android应用时,有时候需要将HTML内容渲染到WebView中展示,之后再将WebView中的内容转换成PDF文件保存或分享。这种功能的应用场景非常广泛,比如电子发票、电子文档生成等。 #### 技术要点 1. **HTML加载至...

    Android Studio平台下使用webview开发的android浏览器

    本资源配套本人的博客文章《Android开发】Android Studio中进行简单的WebView构建浏览器开发1》和《Android开发】Android Studio中进行简单的WebView构建浏览器开发2》进行使用,实现了基本的浏览器功能:包括:输入...

    Android离线webview调试工具,开发H5混合应用必备

    在Android平台上,开发混合应用程序(Hybrid App)时,经常需要用到WebView来加载和展示H5内容。然而,对于H5页面的调试工作,开发者通常依赖于Chrome浏览器的开发者工具(Chrome DevTools),其中的`chrome://...

    用原生webView开发的安卓壳子

    在Android应用开发中,"用原生webView开发的安卓壳子"是指利用Android系统的WebView组件构建一个基础的应用框架。WebView是Android SDK中的一个类,它允许开发者在应用程序中嵌入一个浏览器内核,用于显示网页内容。...

    android webview 版本69.0

    WebView在Android开发中扮演着核心角色,因为它允许混合式应用开发,将本地Android功能与网络内容相结合。 在“android_external_chromium-webview-lineage-15.1”这个压缩包子文件的文件名称中,我们可以解读出...

    WebViewProxy:设置 Android WebView 代理的类

    网络视图代理设置 Android WebView 代理的类

    com.android.webview-95.0.4638.50

    在Android开发中,WebView的重要性不言而喻,因为它为开发者提供了在本地应用中集成网页内容的能力,无需跳转到外部浏览器。例如,阅读器应用可以使用WebView展示文章,社交应用可以加载用户动态,甚至游戏也可能...

Global site tag (gtag.js) - Google Analytics