没有合适的资源?快使用搜索试试~ 我知道了~
这是一份全面&详细的Webview使用攻略
需积分: 5 1 下载量 137 浏览量
2023-04-17
03:00:45
上传
评论
收藏 160KB DOC 举报
温馨提示
试读
12页
这是一份全面&详细的Webview使用攻略
资源推荐
资源详情
资源评论
Android:这是一份全面&详细的 Webview 使用攻略
前言
� 现在很多 App 里都内置了 Web 网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图
� 那么这种该如何实现呢?其实这是 Android 里一个叫 WebView 的组件实现的。今天我将全面介绍 WebView 的常用用法。
目录
1. 简介
WebView 是一个基于 webkit 引擎、展现 web 页面的控件。
Android 的 Webview 在低版本和高版本采用了不同的 webkit 版本内核,4.4 后直接使用了 Chrome。
2. 作用
� 显示和渲染 Web 页面
� 直接使用 html 文件(网络上或本地 assets 中)作布局
� 可和 JavaScript 交互调用
WebView 控件功能强大,除了具有一般 View 的属性和设置外,还可以对 url 请求、页面加载、渲染、页面交互进行强大的处理。
3. 使用介绍
一般来说 Webview 可单独使用,可联合其子类一起使用,所以接下来,我会介绍:
� Webview 自身的常见方法;
� Webview 的最常用的子类 (WebSettings 类、WebViewClient 类、WebChromeClient 类)
� Android 和 Js 的交互
3.1 Webview 常用方法
3.1.1 加载 url
加载方式根据资源分为三种
//方式 1. 加载一个网页:
webView.loadUrl("http://www.google.com/");
//方式 2:加载 apk 包中的 html 页面
webView.loadUrl("file:///android_asset/test.html");
//方式 3:加载手机本地的 html 页面
webView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html");
// 方式 4: 加载 HTML 页面的一小段内容
WebView.loadData(String data, String mimeType, String encoding)
// 参数说明:
// 参数 1:需要截取展示的内容
// 内容里不能出现 ’#’, ‘%’, ‘\’ , ‘?’ 这四个字符,若出现了需用 %23, %25, %27, %3f 对应来替代,否则会出现异常
// 参数 2:展示内容的类型
// 参数 3:字节码
复制代码
3.1.1 WebView 的状态
//激活 WebView 为活跃状态,能正常执行网页的响应
webView.onResume() ;
//当页面被失去焦点被切换到后台不可见状态,需要执行 onPause
//通过 onPause 动作通知内核暂停所有的动作,比如 DOM 的解析、plugin 的执行、JavaScript 执行。
webView.onPause();
//当应用程序(存在 webview)被切换到后台时,这个方法不仅仅针对当前的 webview 而是全局的全应用程序的 webview
//它会暂停所有 webview 的 layout,parsing,javascripttimer。降低 CPU 功耗。
webView.pauseTimers()
//恢复 pauseTimers 状态
webView.resumeTimers();
//销毁 Webview
//在关闭了 Activity 时,如果 Webview 的音乐或视频,还在播放。就必须销毁 Webview
//但是注意:webview 调用 destory 时,webview 仍绑定在 Activity 上
//这是由于自定义 webview 构建时传入了该 Activity 的 context 对象
//因此需要先从父容器中移除 webview,然后再销毁 webview:
rootLayout.removeView(webView);
webView.destroy();
复制代码
3.1.2 关于前进 / 后退网页
//是否可以后退
Webview.canGoBack()
//后退网页
Webview.goBack()
//是否可以前进
Webview.canGoForward()
//前进网页
Webview.goForward()
//以当前的 index 为起始点前进或者后退到历史记录中指定的 steps
//如果 steps 为负数则为后退,正数则为前进
Webview.goBackOrForward(intsteps)
复制代码
常见用法:Back 键控制网页后退
� 问题:在不做任何处理前提下 ,浏览网页时点击系统的“Back”键,整个 Browser 会调用 finish()而结束自身
� 目标:点击返回后,是网页回退而不是推出浏览器
� 解决方案:在当前 Activity 中处理并消费掉该 Back 事件
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
复制代码
3.1.3 清除缓存数据
//清除网页访问留下的缓存
//由于内核缓存是全局的因此这个方法不仅仅针对 webview 而是针对整个应用程序.
Webview.clearCache(true);
//清除当前 webview 访问的历史记录
//只会 webview 访问历史记录里的所有记录除了当前访问记录
Webview.clearHistory();
//这个 api 仅仅清除自动完成填充的表单数据,并不会清除 WebView 存储到本地的数据
Webview.clearFormData();
复制代码
3.2 常用类
3.2.1 WebSettings 类
� 作用:对 WebView 进行配置和管理
� 配置步骤 & 常见方法:
配置步骤 1:添加访问网络权限(AndroidManifest.xml)
这是前提!这是前提!这是前提!
<uses-permission android:name="android.permission.INTERNET"/>
复制代码
配置步骤 2:生成一个 WebView 组件(有两种方式)
//方式 1:直接在在 Activity 中生成
WebView webView = new WebView(this)
剩余11页未读,继续阅读
资源评论
回家回头
- 粉丝: 0
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功