文档章节

Android平台下 Webview加载h5页面,交互,及本地化缓存

走世界
 走世界
发布于 2017/09/06 17:24
字数 369
阅读 37
收藏 0

webview常用于加载一些和iOS公用或者格式比较复杂的页面,像新闻详情页面,由于图片和文字位置,数量都不确定,导致在android下xml没办法编写。

使用的话也是非常简单,在xml文件中直接引用<WebView>控件即可。在类中的使用方法,

WebSettings settings = webview.getSettings();
settings.setWebChromeClient(new WebChromeClient() {
});
settings.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
    }
});
settings.setJavaScriptEnabled(true);
settings.setAllowFileAccess(true);// 允许访问文件   
settings.setBuiltInZoomControls(true);// 设置显示缩放按钮   
settings.setSupportZoom(true);// 支持缩放 
settings.setTextSize(); // 这里的设置字体大小并不指字号,textSize形式的属性,共有5个,需要用到的可以自己查看设置
settings.setAllowFileAccess(true);// 允许访问文件   
settings.setBuiltInZoomControls(true);// 设置显示缩放按钮   
settings.setSupportZoom(true);// 支持缩放
//********************************************* 需要支持缓存的设置
// 设置支持本地存储
settings.setDatabaseEnabled(true);
//取得缓存路径
String path = getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath();
//设置路径
settings.setDatabasePath(path);
//设置支持DomStorage
settings.setDomStorageEnabled(true);
//设置存储模式
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
//设置缓存
settings.setAppCacheEnabled(true);
webView.requestFocus();
//***********************************************
webView.loadUrl("www.baidu.com"); // 加载普通网页,
webView.loadData(); // </p> 
webView.loadDataWithBaseURL(); // 返回的html标签,本地解析  ,不同的加载方式,可能理解有错误,谨慎使用
// 如果有页面交互的话需要写接口调用了
webView.addJavascriptInterface(new XXXXJavascriptInterface(),"h5");
// 设置顶部进度条,比例按照参数计算就行了
fullWebView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        super.onProgressChanged(view, newProgress);
    }
});
 大概

 

© 著作权归作者所有

走世界
粉丝 7
博文 96
码字总数 91434
作品 0
和平
程序员
私信 提问
加载中

评论(1)

yale8848
yale8848
本地缓存推荐通过shouldInterceptRequest 拦截资源的方式,这样比较方便,耦合比较小; 我这封装一个库,https://github.com/yale8848/CacheWebView 欢迎大家拍砖讨论
Android WebView:这是一份 详细 & 易懂的WebView学习攻略(含与JS交互、缓存构建等)

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

Carson_Ho
2018/05/21
0
0
Android WebView:这是一份全面 & 详细的WebView学习指南

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

carson_ho
2018/04/19
0
0
Android Hybrid开发:这是一份详细 & 全面的WebView学习攻略

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

Carson_Ho
2018/06/19
0
0
WebView深度学习(一)之WebView的基本使用以及Android和js的交互

前言:随着市场需求的不断变化,原生安卓已经无法满足客户的需要了,现在很多app都在使用Android和h5的交互实现某些功能,比如商品详情页,文章详情页面,商品点评页面,还有某些复杂的展示页...

aweiloveandroid
2017/07/01
0
0
Android 和 Webview 如何相互 sayHello(一)

本系列文章一共有两篇:主要来讲解 webview 和客户端的交互。 本篇为第一篇:Android 和 webview 的交互 后续一篇是:IOS 和 webview 的交互 如需获得最新的内容,可以关注微信公众号:前端小...

villainhr
2018/08/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka 原理和实战

本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/bV8AhqAjQp4a_iXRfobkCQ 作者简介:郑志彬,毕业于华南理工大学计算机科学与技术(双语班)。先后从事过电子商务、开放平...

vivo互联网技术
3分钟前
1
0
java数据类型

基本类型: 整型:Byte,short,int,long 浮点型:float,double 字符型:char 布尔型:boolean 引用类型: 类类型: 接口类型: 数组类型: Byte 1字节 八位 -128 -------- 127 short 2字节...

audience_1
50分钟前
6
0
太全了|万字详解Docker架构原理、功能及使用

一、简介 1、了解Docker的前生LXC LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpa...

Java技术剑
51分钟前
9
0
Wifiphisher —— 非常非常非常流氓的 WIFI 网络钓鱼框架

编者注:这是一个非常流氓的 WIFI 网络钓鱼工具,甚至可能是非法的工具(取决于你的使用场景)。在没有事先获得许可的情况下使用 Wifiphisher 攻击基础网络设施将被视为非法活动。使用时请遵...

红薯
今天
52
1
MongoDB 4 on CentOS 7安装指南

本教程为CentOS x86_64 7.x操作系统下,MongoDB Community x86_64 4.2(GA)安装指南。 安装方式一:yum repo在线安装 [此方式较为简单,官方推荐] Step1:新建MongDB社区版Yum镜像源。 # vim ...

王焱君
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部