Android 关于WebView全方面的使用

相关类介绍

  

 WebResourceRequest

添加于API21,封装了一个Web资源的请求信息,包含:请求地址,请求方法,请求头,是否主框架,是否用户点击,是否重定向

 

WebResourceResponse

封装了一个Web资源的响应信息,包含:响应数据流,编码,MIME类型,API21后添加了响应头,状态码与状态描述


WebResourceError

添加于API23,封装了一个Web资源的错误信息,包含错误码和描述

 

CookieManager

管理用于WebView的cookies。

 

WebViewDatabase

存储与管理以下几类浏览数据:

1、 表单自动填充的的用户名与密码

2、 HTTP认证的用户名与密码

3、 曾经输入过的文本(比如自动完成)

 

WebStorage

用于管理WebView提供的JS存储API,比如ApplicationCache API,Web SQL Database API,HTML5Web Storage API

  

GeolocationPermissions

用于管理WebView的JS Geolocation API

 

 HttpAuthHandler

表示一个HTTP认证请求,提供了方法操作(proceed/cancel)请求

 

SslErrorHandler

表示一个处理SSL错误的请求,提供了方法操作(proceed/cancel)请求

 

ClientCertRequest

表示一个证书请求,提供了方法操作(proceed/cancel/ignore)请求

 

JsResult

用于处理底层JS发起的请求,为客户端提供一些方法指明应进行的操作,比如确认或取消。

 

 

WebView

 

基本的API

// 获取当前页面的URL
public String getUrl();
// 获取当前页面的原始URL(重定向后可能当前url不同)
// 就是http headers的Referer参数,loadUrl时为null
public String getOriginalUrl();
// 获取当前页面的标题
public String getTitle();
// 获取当前页面的favicon
public Bitmap getFavicon();
// 获取当前页面的加载进度
public int getProgress();
// 通知WebView内核网络状态
// 用于设置JS属性`window.navigator.isOnline`和产生HTML5事件`online/offline`
public void setNetworkAvailable(boolean networkUp)
// 设置初始缩放比例
public void setInitialScale(int scaleInPercent);

 

加载网页

// 加载URL指定的网页
public void loadUrl(String url);
// 携带http headers加载URL指定的网页
public void loadUrl(String url, Map<String, String>additionalHttpHeaders);
// 使用POST请求加载指定的网页
public void postUrl(String url, byte[] postData);
// 重新加载当前网页
public void reload();
// 加载内容
public void loadData(String data, String mimeType, Stringencoding);
// 使用baseUrl加载内容
public void loadDataWithBaseURL(String baseUrl, Stringdata, String mimeType, String encoding, String historyUrl);



Javascript

// 注入Javascript对象
public void addJavascriptInterface(Object object, Stringname);
// 移除已注入的Javascript对象,下次加载或刷新页面时生效
public void removeJavascriptInterface(String name);
// 对传入的JS表达式求值,通过resultCallback返回结果
// 此函数添加于API19,必须在UI线程中调用,回调也将在UI线程
public void evaluateJavascript(String script,ValueCallback<String> resultCallback)

 

导航(前进后退)

// 复制一份BackForwardList
public WebBackForwardList copyBackForwardList();
// 是否可后退
public boolean canGoBack();
// 是否可前进
public boolean canGoForward();
// 是否可前进/后退steps页,大于0表示前进小于0表示后退
public boolean canGoBackOrForward(int steps);
// 后退一页
public void goBack();
// 前进一页
public void goForward();
// 前进/后退steps页,大于0表示前进小于0表示后退
public void goBackOrForward(int steps);
// 清除当前webview访问的历史记录
public void clearHistory();

 

网页查找功能

// 设置网页查找结果回调
public void setFindListener(FindListener listener);
// 异步执行查找网页内包含的字符串并设置高亮,查找结果会回调.
public void findAllAsync (String find);
// 查找下一个匹配的字符串
public void findNext (boolean forward);
// 清除网页查找的高亮匹配字符串
public void clearMatches();

 

截屏/翻页/缩放

// 保存网页(.html)到指定文件
public void saveWebArchive(String filename);
// 保存网页(.html)到文件
public void saveWebArchive(String basename, booleanautoname, ValueCallback<String> callback);
// 上翻一页,即向上滚动WebView高度的一半
public void pageUp(boolean top);
// 下翻一页,即向下滚动WebView高度的一半
public void pageDown(boolean bottom);
// 缩放
public void zoomBy(float factor);
// 放大
public boolean zoomIn();
// 缩放
public boolean zoomOut();

 

其它

// 清除网页缓存,由于内核缓存是全局的因此这个方法不仅仅针对webview而是针对整个应用程序
public void clearCache(boolean includeDiskFiles);
// 清除自动完成填充的表单数据
public void clearFormData();
// 清除SSL偏好
public void clearSslPreferences();
// 查询文档中是否有图片,查询结果将被发送到msg.getTarget()
// 如果包含图片,msg.arg1 为1,否则为0
public void documentHasImages(Message msg);
// 请求最近轻叩(tapped)的锚点/图像 元素的URL,查询结果将被发送到msg.getTarget()
// msg.getData()中的url是锚点的href属性,title是锚点的文本,src是图像的src
public void requestFocusNodeHref(Message msg);
// 请求最近触摸(touched)的图像元素的URL,查询结果将被发送到msg.getTarget()
// msg.getData()中的url是图像链接
public void requestImageRef(Message msg)
// 清除证书请求偏好,添加于API21
// 在WebView收到`android.security.STORAGE_CHANGED` Intent时会自动清除
public static void clearClientCertPreferences(RunnableonCleared)
// 开启网页内容(js,css,html...)调试模式,添加于API19
public static void setWebContentsDebuggingEnabled(booleanenabled)

 

WebSettings

WebSettings settings = web.getSettings();
// 存储(storage)
// 启用HTML5 DOMstorage API,默认值 false
settings.setDomStorageEnabled(true);
// 启用Web SQLDatabase API,这个设置会影响同一进程内的所有WebView,默认值 false
// 此API已不推荐使用,参考:https://www.w3.org/TR/webdatabase/
settings.setDatabaseEnabled(true); 
// 启用ApplicationCaches API,必需设置有效的缓存路径才能生效,默认值 false
// 此API已废弃,参考:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Using_the_application_cache
settings.setAppCacheEnabled(true);
settings.setAppCachePath(context.getCacheDir().getAbsolutePath());
// 定位(location)
settings.setGeolocationEnabled(true);
// 是否保存表单数据
settings.setSaveFormData(true);
// 是否当webview调用requestFocus时为页面的某个元素设置焦点,默认值 true
settings.setNeedInitialFocus(true); 
// 是否支持viewport属性
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值