`
univasity
  • 浏览: 811520 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[Android API 学习]WebView基本使用

阅读更多

 

WebView是android.webkit包下的一个组件,能用来显示网页。

WebView默认是不带地址栏和加载进度条的,单单是一个显示页面内容的面板。

使用WebView非常简单,主要是通过load方法进行加载。

[使用WebView打开一个网页]
1.在布局xml文件中定义WebView组件
< WebView   android:id = "@+id/webview"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent"
/>

2.在AndroidManifest.xml中添加网络访问权限
< uses-permission android:name = "android.permission.INTERNET"  / >

3.通过load函数加载网页
mWebview  = (WebView) this .findViewById(R.id. webview );
// 简单地加载一个页面
mWebview .loadUrl(url);
// 加载assets目录下的页面(assets\index.html)
mWebview .loadData( "file:///android_asset/index.html" );

但你会发现,如果点击页面的某条链接进行跳转的话,会启动系统的默认浏览器进行加载,调出了我们本身的应用。要解决这个问题我们需要借助于WebViewClient。

[自定义链接的跳转显示]
mWebview .setWebChromeClient( new  WebViewClient() {
            
        /**
        * 自定义网页加载
        */
         public   boolean   shouldOverrideUrlLoading(WebView view, String url){
             // 使用当前的WebView加载页面
            view.loadUrl(url);
             return   true ;
       }
            
});

在WebViewClient中还有很多的方法,例如:
/**
 * 网页开始加载
 */
public   void   onPageStarted(WebView view, String url, Bitmap favicon);

/**
 * 网页加载完毕(仅指主页,不包括图片)
 */
public   void   onPageFinished(WebView view, String url);

/**
 * 加载页面资源
 */
public   void   onLoadResource(WebView view, String url)

/**
 * 错误提示
 */
public   void   onReceivedError(WebView view,   int   errorCode, String description, String failingUrl)

我们都可以通过重写来实现自己的个性化操作。

[页面回退]
实现了跳转后,你忽然想返回到前一个浏览过的页面是,发现返回键是直接退出应用了。要实现类似系统浏览器那样的,返回键先是返回到上一个页面,直到最初始的页面才退出的话,可以这么做:
// 重写onKeyDown
public   boolean   onKeyDown ( int   keyCode, KeyEvent event) {
      if   ((keyCode == KeyEvent. KEYCODE_BACK ) &&   mWebview .canGoBack()) {
           mWebview .goBack();
          return   true ;
     }
         
      return   super .onKeyDown(keyCode, event);
}

[进度条]
要是再加上加载进度条那就完美了,我们可以借助WebChromeClient来实现:
mWebview .setWebChromeClient( new  WebChromeClient()   {
       /**
       * 进度条发生变化
       */       
       public   void   onProgressChanged (WebView view,   int   newProgress){
             loadingProgress .setProgress(newProgress);
      }
});

>>更多的WebView的使用说明请参考API文档。
分享到:
评论
1 楼 sgjsdf5944 2013-10-17  
楼主你好,如果点击页面的某条链接进行跳转的话,会启动系统的默认浏览器进行加载。我就用webView加装一个页面,该页面重定向到另一个页面,2.3在应用内加载而4.0下却启用了浏览器。这是怎么回事?希望楼主解答下,谢谢!

相关推荐

    android不使用webview与js交互

    在Android开发中,Webview通常被用来加载网页内容并实现应用程序与网页之间的交互。然而,有时我们可能有需求在不依赖Webview的情况下实现Android应用与JavaScript的交互。本文将深入探讨这种非Webview方式的交互...

    Android 基于x5Webview 浏览文件 office文档

    总之,"Android 基于x5Webview 浏览文件 office文档"涉及到的关键知识点包括:1) 集成和使用X5WebView;2) 转换Office文档为在线预览链接;3) 处理Android 11的存储权限问题;4) 实现WebView的相关交互功能,如加载...

    android 简单webview的使用

    以上就是Android中使用WebView的基本操作,通过这些基础,你可以根据需求进行更复杂的定制,例如实现离线缓存、注入JavaScript对象、处理网页中的图片和视频等。在实际开发中,WebView经常被用来构建混合应用,结合...

    android开发中WebView的使用

    这个简单的例子展示了WebView在Android开发中的基本使用,但实际应用中,开发者可能还需要实现更多的功能,例如添加网页拦截器(WebViewClient的`onReceivedError`或`onReceivedHttpError`方法),处理用户登录认证...

    Android APP使用WebView调用H5页面完成摄像头扫描二维码软件源码.rar

    在Android应用开发中,WebView是一个非常重要的组件,...以上就是Android APP使用WebView调用H5页面完成摄像头扫描二维码的关键技术点。通过这个示例,开发者可以学习到如何结合原生功能与H5页面,提升APP的用户体验。

    android 第三方webview cordova的集成使用

    在Android开发中,有时我们需要利用第三方库来增强应用的功能...只需了解基本的Web开发和Android环境设置,就能充分利用Cordova提供的便利。在实际项目中,根据需求选择合适的插件,可以极大地提高开发效率和用户体验。

    Android实现WebView懒加载

    在Android 8.0(API级别26)之前,原生的WebView性能可能无法满足需求,特别是在处理复杂网页时。这时,开发者通常会选择引入腾讯的X5内核,它基于WebKit但进行了大量的优化,提供了更好的性能和稳定性。X5内核支持...

    Android-android端通用WebView

    1. **WebView的基本使用**: - `WebView` 是Android SDK中的一个类,继承自 `View`,用于加载和显示网页内容。 - 初始化:在XML布局文件中添加WebView元素,或者在代码中创建并添加到视图层次中。 - 加载网页:...

    Android中的webview监听每次URL变化实例

    需要注意的是,在Android 6.0(API级别23)及以上版本中,onPageFinished可能只会被调用一次,这可能会限制该方法的使用场景。 ```java mWebView.setWebViewClient(new WebViewClient() { @Override public void ...

    android webview 版本69.0

    总的来说,这个“android webview 版本69.0”是AOSP的一个组件,基于Chromium,适合那些希望在没有Google服务的情况下使用WebView的应用开发者。开发者在使用时应考虑其更新策略和安全性,同时充分利用其提供的API来...

    Android之WebView使用Demo

    **Android之WebView使用Demo** 在Android开发中,`WebView`是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,极大地扩展了Android应用的功能。本教程将详细讲解如何在Android应用中使用`WebView...

    Android下WebView中调用系统相机拍照范例

    `INTERNET`权限允许WebView加载网络资源,`CAMERA`权限允许应用使用设备的摄像头,而`WRITE_EXTERNAL_STORAGE`权限则是为了在SD卡上保存拍摄的照片。 接下来,我们要创建一个自定义的WebView类,扩展`WebViewClient...

    Android中WebView使用

    以上就是关于Android中WebView的基本使用和一些常见操作。在实际项目中,你可能还需要根据需求进行更复杂的定制和优化,例如性能调整、内存管理、错误处理等。通过深入理解和实践,你可以将WebView的功能发挥到极致...

    Android Webview滑动监听

    首先,我们要了解`WebView`的基本用法。在Android Studio中,创建一个新的布局XML文件,添加`WebView`组件: ```xml &lt;WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_...

    Android-Android实现微信webview兼容Android7.0

    然而,不同的Android版本之间可能存在兼容性问题,特别是在涉及到复杂交互或者特定API使用时。针对这个问题,微信团队开发了一个名为X5的Webview引擎,即TBS(Tencent浏览服务),用于提供更稳定、高效的网页加载...

    Android Webview视频播放器

    这个文件是Android应用的核心配置文件,其中会包含应用的基本信息以及权限声明。在这个项目中,可能需要声明读取存储权限(READ_EXTERNAL_STORAGE或MANAGE_EXTERNAL_STORAGE),以便Webview能访问到本地视频文件。 ...

    Android中WebView返回到上一个网页

    通过这个简单的示例,我们可以了解到在Android中使用WebView加载网页以及处理返回键来实现回退到上一个网页的基本操作。不过,实际开发中可能还需要考虑其他因素,如网页加载进度的显示、设置自定义加载错误页面、...

    android webview 加载网页 样例

    本文将深入探讨如何使用Android WebView加载网页,包括基本使用、配置设置、与JavaScript交互以及处理网络权限等问题。 一、WebView基础 1. 添加依赖 在Android Studio项目中,首先确保在`build.gradle`(Module)...

    Android webview调用摄像头扫描二维码

    首先,让我们了解Android Webview的基本用法。Webview是Android SDK提供的一种视图组件,它能够加载和显示网页内容。在Android Studio中创建一个新的项目,我们需要在布局XML文件(如activity_main.xml)中添加一个...

    android使用webView实现java程序与js脚本的相互调用

    本文将详细介绍如何在Android中使用WebView实现Java程序与JS脚本的相互调用。 ### 1. 添加WebView到布局 首先,在XML布局文件中添加WebView组件,例如在`activity_main.xml`中: ```xml &lt;WebView android:id="@+...

Global site tag (gtag.js) - Google Analytics