方法 |
注释 |
setWebView |
设置 WebView |
getWebView |
获取 WebView |
isWebViewNotEmpty |
WebView 是否不为 null |
setBuilder |
设置 WebView 常用配置构建类 |
getBuilder |
获取 WebView 常用配置构建类 |
apply |
应用 ( 设置 ) 配置 |
setGlobalBuilder |
设置全局 WebView 常用配置构建类 |
getGlobalBuilder |
获取全局 WebView 常用配置构建类 |
loadUrl |
加载网页 |
loadData |
加载 Html 代码 |
loadDataWithBaseURL |
加载 Html 代码 |
postUrl |
使用 POST 方法将带有 postData 的 url 加载到 WebView 中 |
getSettings |
获取 WebView 配置 |
getUserAgentString |
获取浏览器标识 UA |
setUserAgentString |
设置浏览器标识 |
addJavascriptInterface |
添加 JS 交互注入对象 |
removeJavascriptInterface |
移除 JS 交互注入对象 |
evaluateJavascript |
执行 JS 方法 |
setWebViewClient |
设置处理各种通知和请求事件对象 |
getWebViewClient |
获取处理各种通知和请求事件对象 |
setWebChromeClient |
设置辅助 WebView 处理 Javascript 对话框、标题等对象 |
getWebChromeClient |
获取辅助 WebView 处理 Javascript 对话框、标题等对象 |
destroy |
销毁处理 |
canGoBack |
WebView 是否可以后退 |
goBack |
WebView 后退 |
canGoForward |
WebView 是否可以前进 |
goForward |
WebView 前进 |
canGoBackOrForward |
WebView 是否可以跳转到当前起始点相距的历史记录 |
goBackOrForward |
WebView 跳转到当前起始点相距的历史记录 |
reload |
刷新页面 ( 当前页面的所有资源都会重新加载 ) |
stopLoading |
停止加载 |
clearCache |
清除资源缓存 |
clearHistory |
清除当前 WebView 访问的历史记录 |
clearFormData |
清除自动完成填充的表单数据 |
getScale |
获取缩放比例 |
getScrollY |
获取当前可见区域的顶端距整个页面顶端的距离 ( 当前内容滚动的距离 ) |
getScrollX |
获取当前内容横向滚动距离 |
getContentHeight |
获取 HTML 的高度 ( 原始高度, 不包括缩放后的高度 ) |
getScaleHeight |
获取缩放高度 |
getHeight |
获取 WebView 控件高度 |
pageDown |
将视图内容向下滚动一半页面大小 |
pageUp |
将视图内容向上滚动一半页面大小 |
handlerKeyDown |
处理按键 ( 是否回退 ) |
setLayerTypeSoftware |
关闭 WebView 硬件加速功能 |
setLayerType |
设置 WebView 硬件加速类型 |
getUrl |
获取当前 Url |
getOriginalUrl |
获取最初请求 Url |
getHitTestResult |
获取长按事件类型 |
setCookie |
将 Cookie 设置到 WebView |
getCookie |
获取指定 Url 的 Cookie |
removeCookie |
移除 Cookie |
removeSessionCookie |
移除 Session Cookie |
removeAllCookie |
移除所有的 Cookie |
setOnApplyListener |
设置应用配置监听事件 |
getApplyListener |
获取应用配置监听事件 |
clone |
克隆方法 ( 用于全局配置克隆操作 ) |
reset |
重置方法 |
isJavaScriptEnabled |
是否支持 JavaScript |
setJavaScriptEnabled |
设置是否支持 JavaScript |
getRenderPriority |
获取渲染优先级 |
setRenderPriority |
设置渲染优先级 |
isUseWideViewPort |
是否使用宽视图 |
setUseWideViewPort |
设置是否使用宽视图 |
isLoadWithOverviewMode |
是否按宽度缩小内容以适合屏幕 |
setLoadWithOverviewMode |
设置是否按宽度缩小内容以适合屏幕 |
getLayoutAlgorithm |
获取基础布局算法 |
setLayoutAlgorithm |
设置基础布局算法 |
isSupportZoom |
是否支持缩放 |
setSupportZoom |
设置是否支持缩放 |
isBuiltInZoomControls |
是否显示内置缩放工具 |
setBuiltInZoomControls |
设置是否显示内置缩放工具 |
isDisplayZoomControls |
是否显示缩放工具 |
setDisplayZoomControls |
设置是否显示缩放工具 |
getTextZoom |
获取文本缩放倍数 |
setTextZoom |
设置文本缩放倍数 |
getStandardFontFamily |
获取 WebView 字体 |
setStandardFontFamily |
设置 WebView 字体 |
getDefaultFontSize |
获取 WebView 字体大小 |
setDefaultFontSize |
设置 WebView 字体大小 |
getMinimumFontSize |
获取 WebView 支持最小字体大小 |
setMinimumFontSize |
设置 WebView 支持最小字体大小 |
getMixedContentMode |
获取混合内容模式 |
setMixedContentMode |
设置混合内容模式 |
isLoadsImagesAutomatically |
是否支持自动加载图片 |
setLoadsImagesAutomatically |
设置是否支持自动加载图片 |
isJavaScriptCanOpenWindowsAutomatically |
是否支持通过 JS 打开新窗口 |
setJavaScriptCanOpenWindowsAutomatically |
设置是否支持通过 JS 打开新窗口 |
getDefaultTextEncodingName |
获取编码格式 |
setDefaultTextEncodingName |
设置编码格式 |
isGeolocationEnabled |
是否允许网页执行定位操作 |
setGeolocationEnabled |
设置是否允许网页执行定位操作 |
isAllowFileAccess |
是否可以访问文件 ( false 不影响 assets 和 resources 资源的加载 ) |
setAllowFileAccess |
设置是否可以访问文件 ( false 不影响 assets 和 resources 资源的加载 ) |
isAllowFileAccessFromFileURLs |
是否允许通过 file url 加载的 JS 代码读取其他的本地文件 |
setAllowFileAccessFromFileURLs |
设置是否允许通过 file url 加载的 JS 代码读取其他的本地文件 |
isAllowUniversalAccessFromFileURLs |
是否允许通过 file url 加载的 JS 可以访问其他的源 ( 包括 http、https 等源 ) |
setAllowUniversalAccessFromFileURLs |
设置是否允许通过 file url 加载的 JS 可以访问其他的源 ( 包括 http、https 等源 ) |
getCacheMode |
获取 WebView 缓存模式 |
setCacheMode |
设置 WebView 缓存模式 |
isDomStorageEnabled |
是否支持 DOM Storage |
setDomStorageEnabled |
设置是否支持 DOM Storage |
isAppCacheEnabled |
是否开启 Application Caches 功能 |
setAppCacheEnabled |
设置是否开启 Application Caches 功能 |
getAppCachePath |
获取 Application Caches 地址 |
setAppCachePath |
设置 Application Caches 地址 |
getAppCacheMaxSize |
获取 Application Caches 大小 |
setAppCacheMaxSize |
设置 Application Caches 大小 |
isDatabaseEnabled |
是否支持数据库缓存 |
setDatabaseEnabled |
设置是否支持数据库缓存 |
getDatabasePath |
获取数据库缓存路径 |
setDatabasePath |
设置数据库缓存路径 |
onApply |
应用配置通知方法 |
package dev.assist;
import android.graphics.Paint;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import java.util.Map;
import dev.DevUtils;
import dev.utils.LogPrintUtils;
import dev.utils.app.ViewUtils;
public class WebViewAssist {
private static final String TAG = WebViewAssist.class.getSimpleName();
private WebView mWebView;
private Builder mBuilder;
private static Builder sGlobalBuilder;
public WebViewAssist() {
this(true);
}
public WebViewAssist(final boolean listener) {
if (sGlobalBuilder != null) {
mBuilder = sGlobalBuilder.clone(listener);
}
}
public WebViewAssist setWebView(final WebView webView) {
this.mWebView = webView;
return this;
}
public WebView getWebView() {
return mWebView;
}
public boolean isWebViewNotEmpty() {
return mWebView != null;
}
public WebViewAssist setBuilder(final Builder builder) {
return setBuilder(builder, true);
}
public WebViewAssist setBuilder(final Builder builder, final boolean apply) {
this.mBuilder = builder;
if (this.mBuilder != null) {
this.mBuilder.setWebViewAssist(this);
if (apply) {
this.mBuilder.apply();
}
}
return this;
}
public Builder getBuilder() {
return mBuilder;
}
public WebViewAssist apply() {
return setBuilder(mBuilder);
}
public static void setGlobalBuilder(final Builder builder) {
WebViewAssist.sGlobalBuilder = builder;
}
public static Builder getGlobalBuilder() {
return WebViewAssist.sGlobalBuilder;
}
public WebViewAssist loadUrl(final String url) {
if (isWebViewNotEmpty()) {
mWebView.loadUrl(url);
}
return this;
}
public WebViewAssist loadUrl(final String url, final Map<String, String> additionalHttpHeaders) {
if (isWebViewNotEmpty()) {
mWebView.loadUrl(url, additionalHttpHeaders);
}
return this;
}
@Deprecated
public WebViewAssist loadData(final String data, final String mimeType, final String encoding) {
if (isWebViewNotEmpty()) {
mWebView.loadData(data, mimeType, encoding);
}
return this;
}
public WebViewAssist loadDataWithBaseURL(final String baseUrl, final String data, final String mimeType, final String encoding, final String historyUrl) {
if (isWebViewNotEmpty()) {
mWebView.loadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
}
return this;
}
public WebViewAssist postUrl(final String url, final byte[] postData) {
if (isWebViewNotEmpty()) {
mWebView.postUrl(url, postData);
}
return this;
}
public WebViewAssist loadDataWithBaseURL(final String data) {
return loadDataWithBaseURL(null, data, null);
}
public WebViewAssist loadDataWithBaseURL(final String baseUrl, final String data, final String historyUrl) {
return loadDataWithBaseURL(baseUrl, data, "text/html", "utf-8", historyUrl);
}
public WebSettings getSettings() {
return isWebViewNotEmpty() ? mWebView.getSettings() : null;
}
public String getUserAgentString() {
WebSettings webSettings = getSettings();
return (webSettings != null) ? webSettings.getUserAgentString() : null;
}