android webview 例子,android – webview shouldinterceptrequest示例
那么简短的答案是它的工作原理与shouldOverrideUrlLoading(WebView视图,String url)非常相似,如
WebView tutorial所示。
要开始使用,请参阅下面的代码。您只需覆盖WebViewClient的shouldInterceptRequest(WebView视图,String url)方法即可。显然,你不必在线,但是为了紧凑,这就是我所做的:
WebView webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest (final WebView view, String url) {
if (url.contains(".css")) {
return getCssWebResourceResponseFromAsset();
} else {
return super.shouldInterceptRequest(view, url);
}
}
/**
* Return WebResourceResponse with CSS markup from a String.
*/
@SuppressWarnings("deprecation")
private WebResourceResponse getCssWebResourceResponseFromString() {
return getUtf8EncodedCssWebResourceResponse(new StringBufferInputStream("body { background-color: #F781F3; }"));
}
/**
* Return WebResourceResponse with CSS markup from an asset (e.g. "assets/style.css").
*/
private WebResourceResponse getCssWebResourceResponseFromAsset() {
try {
return getUtf8EncodedCssWebResourceResponse(getAssets().open("style.css"));
} catch (IOException e) {
return null;
}
}
/**
* Return WebResourceResponse with CSS markup from a raw resource (e.g. "raw/style.css").
*/
private WebResourceResponse getCssWebResourceResponseFromRawResource() {
return getUtf8EncodedCssWebResourceResponse(getResources().openRawResource(R.raw.style));
}
private WebResourceResponse getUtf8EncodedCssWebResourceResponse(InputStream data) {
return new WebResourceResponse("text/css", "UTF-8", data);
}
});
webview.loadUrl("http://stackoverflow.com");
捕获加载的css文件,并返回自己的WebResourceResponse,其中包含要加载的数据。
请注意,此方法需要API级别11。
如果您想为Android 2.x做类似的操作,可能需要尝试使用前面提到的shouldOverrideUrlLoading(WebView视图,String url)来避免加载页面,手动抓取,将您自己的css文件的引用替换为,然后在WebView上调用loadData(String data,String mimeType,String encoding)(或loadDataWithBaseURL(String baseUrl,String data,String mimeType,String encoding,String historyUrl)),并将其作为一个字符串传递给操作的html内容。
之前:
后:
android webview 例子,android – webview shouldinterceptrequest示例相关推荐
- android 开关按钮例子,Android自学笔记之ToggleButton(开关按钮)的功能、特殊属性、用法...
1.ToggleButton属性: 1>有两种状态:选中和未选中状态并需要为不同的状态设置不同的显示文本 2>android:checked="true" 3>a ...
- android api 设置,Android API中文文档EditText
Android API中文文档EditText是本文要介绍的内容,主要是来了解并学习Android API文档的帮助,具体关于Android API的内容的详解来看本文. 一.Android API中 ...
- Android开发:关于WebView
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/647456 ...
- android点赞webview页面,Android WebView
一.简介 WebView是Android系统中的原生控件,其主要功能与前端页面进行响应交互,快捷省时地实现如期的功能,相当于增强版的内置浏览器. 使用时需要在配置文件里设置网络权限,定义布局大小和样式 ...
- WebView的使用之Android与JS通过WebView互调方法
WebView的使用之Android与JS通过WebView互调方法 一.概述: Android与JS通过WebView实现交互,实际上是: Android调用JS的代码: JS调用Android的 ...
- Android安全开发之WebView中的地雷
0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者简单的展示一些在线内容等.WebView功能强大 ...
- android项目中在webview中打开pdf
android项目中在webview中打开pdf. 关于android打开pdf文件方法有多种,下面的文章有详细说明: Android 实现 PDF 文件阅读功能调研 Android 使用PDF.js ...
- android自带的webview有广告,android webview 拦截广告
要想对Webview实现一些高级操作,需要使用WebViewClient,下面是关于Webview的几个常用回调函数: 1.public boolean shouldOverrideUrlLoadin ...
- 【Android】之【WebView】
一.简介 WebView是一种控件,它基于webkit引擎,因此具备渲染Web页面的功能. 基于Webview的混合开发,就是在 Android os(安卓)/I os(苹果)原生APP里,通过Web ...
最新文章
- mysql 查看表结构,字段的基本信息(简单明了)。
- 最新行政区划编码数据
- MAC电脑使用vue-cli脚手架搭建vue项目;mac使用脚手架vue-cli搭建vue项目
- linux 文件重命名_如何在 Linux 上重命名一组文件 | Linux 中国
- Gitlab自动触发Jenkins构建项目
- 谈谈技术原则,技术学习方法,代码阅读及其他的(引用)
- docker web程序本地化_Docker 容器化部署 Python 应用
- iOS仿京东分类菜单之UICollectionView内容
- WinForm设置窗体默认控件焦点
- 阿里云服务器跟淘宝上租的服务器有什么区别?
- Windows 10 下使用 VMPlayer 16 新建 CentOS 7 64位 虚拟机
- FreePiano下载与使用
- IOI国家集训队1999-2020年论文集(附网盘免费下载链接)
- 学习:网络接口RJ45
- 产品 观察体会微信界面心得(一)
- 服务器c盘有个inetpub文件夹,inetpub是什么文件夹
- CFSSL: 证书管理工具:6:理解证书文件内容
- win7未能成功安装驱动服务器,win7找不到驱动程序提示“未能成功安装设备驱动程序”的解决方法...
- 企业税务负面信息综合查询
- 前端实现pdf转换成html,纯js实现HTML转pdf的简单实例(推荐)_温瞳_前端开发者
热门文章
- [笔记] 最大权闭合子图最大流最小割相关笔记
- XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Korea
- 《Java并发编程的艺术》笔记
- MySQL课堂练习 20162315
- 深入理解include预编译原理
- Linux strace命令 一
- [转载] 扩展Python之在Python中调用C编写的函数模块
- 记录一些关于操作数据库(本地和linux服务器)常用的命令
- PyQt5-QTextEdit控件使用
- 27_线程池_线程池实现原理