当前位置:网站首页>WebView basic use
WebView basic use
2022-07-27 17:06:00 【CAir2】
- Enable JavaScript
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);
//settings.setAllowFileAccess(true);
//settings.setAllowFileAccessFromFileURLs(true);
//settings.setAllowContentAccess(true);
settings.setDatabaseEnabled(true);
settings.setDomStorageEnabled(true);
- Intercept the specified during loading url Or advertising , rewrite
WebViewClient::shouldInterceptRequest
mWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if(mRefreshLayout != null){
mRefreshLayout.finishRefresh();
}
}
@Nullable
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
Uri uri = request.getUrl();
// Filter basic advertisements url And replace pictures
if(uri.toString().equals("https://xxx.png")){
try {
InputStream localCopy = getAssets().open("empty.png");
return new WebResourceResponse("image/png", "UTF-8", localCopy);
}
catch (Exception e){
return new WebResourceResponse(null,null,null);
}
}
if (isAds(uri)){
return new WebResourceResponse(null,null,null);
}
return super.shouldInterceptRequest(view, request);
}
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
Log.i("tUrl", url);
}
});
among Assert Catalogue and java,res At the same level

- monitor url Loading progress , rewrite
WebChromeClient::onProgressChanged
mWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
});
- Intercept href Jump , rewrite
WebViewClient::shouldOverrideUrlLoading
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (request.getUrl().toString().equals("https://xxx")){
// Cancel the current link
return true;
}
return super.shouldOverrideUrlLoading(view, request);
}
边栏推荐
猜你喜欢

Data collection: skillfully using Bloom filter to extract data summary

Flex flex flex box layout 2

Complete steps of JDBC program implementation

This large model sparse training method with high accuracy and low resource consumption has been found by Alibaba cloud scientists! Has been included in IJCAI

数据采集之:巧用布隆过滤器提取数据摘要

自然排序:comparable接口,定制排序:compartor接口的区别

Opencv (III) -- image segmentation

Build a cloud native file system for media assets
![Jerry's built-in touch parameters for modification [chapter]](/img/6b/38c3ad28a7256e5e41bb444d0993db.png)
Jerry's built-in touch parameters for modification [chapter]

C语言之文件操作
随机推荐
What is JSP?
.NET Core with 微服务 - 什么是微服务
Enumeration and union of C language
C语言之指针进阶
Functions in JS
md 中超链接的解析问题:解析`this.$set()`,`$`前要加空格或转义符 `\`
Getting started with unity
合工大苍穹战队视觉组培训Day8——视觉,目标识别
Start from scratch blazor server (1) -- project construction
JDBC连接数据库
字符流读取文件
This large model sparse training method with high accuracy and low resource consumption has been found by Alibaba cloud scientists! Has been included in IJCAI
JDBC程序实现完整步骤
AppStore 内购
万字剖析Ribbon核心组件以及运行原理
Xcode 发布测试包TestFlight
牛客题目——最小的K个数
合工大苍穹战队视觉组培训Day7——视觉,jetson naon与D435i
数据库基础
牛客题目——判断是不是完全二叉树、平衡二叉树