IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android中webview的相关知识点 -> 正文阅读

[移动开发]Android中webview的相关知识点

webview是Android中用来加载网页的一个组件。有一定开发基础的Android程序员应该都是很熟悉这个组件的。有时候我们可能直接使用webview,有时候我们喜欢使用类似AgentWeb之类的三方框架。这里我总结一下webview的一些相关常用方法。今后不论怎么使用webview,这些常用方法都是必不可少的。

1.webview的常用方法

  • loadUrl:加载指定的URL,URL可以是HTTP打头的 外部网址,也可以是file打头的资产网页。
  • getSettings:获取浏览器的网页设置信息。返回一个网页设置WebSettings对象。
  • addJavascriptInterface:添加供JavaScript调用的App接口。
  • setWebViewClient:设置网页视图的网页浏览客户端WebViewClient,如果已调用loadUrl方法,就必须同时调用本方法。
  • setWebChromeClient:设置浏览器的网页交互客户端WebChromeClient。
  • setDownloadListener:设置文件下载监听器DownloadListener。
  • loadData:加载文本数据。第二个参数表示媒体类型,如text/html;第三个参数表示数据的编码格式,如base64表示采用BASE64编码,其余值(包括null)表示URL编码。
  • canGoBack:判断页面能否返回。
  • goBack:返回上一个页面。
  • canGoForward:判断页面能否前进。
  • goForward:前进到下一个页面。
  • reload:重新加载页面。
  • stopLoading:停止加载页面。

2.webSettings的常用方法

<1>基本的加载设置

  • setLoadsImagesAutomatically:设置是否自动加载图片。如果设置为false,就表示无图模式。
  • setDefaultTextEncodingName:设置默认的文本编码,如UTF-8、GBK等。
  • setJavaScriptEnabled:设置是否支持JavaScript。
  • setJavaScriptCanOpenWindowsAutomatically:设置是否允许JavaScript自动打开新窗口,即JS的window.open方法是否适用。

<2>与网页适配有关的设置

  • setSupportZoom:设置是否支持页面缩放。
  • setBuiltInZoomControls:设置是否出现缩放工具。
  • setUseWideViewPort:当容器超过页面大小时,是否将页面放大到塞满容器宽度的尺寸。
  • setLoadWithOverviewMode:当页面超过容器大小时,是否将页面缩小到容器能够装下的尺寸。
  • setLayoutAlgorithm:设置自适应屏幕的算法,一般是LayoutAlgorithm.SINGLE_COLUMN。如果不设置,Android4.2.2及之前的版本就可能出现表格错乱的情况。

<3>与存储有关的设置

  • setAppCacheEnabled:设置是否启用App缓存。
  • setAppCachePath:设置App缓存文件的路径。
  • setAllowFileAccess:设置是否允许访问文件,如WebView访问SD卡的文件。
  • setDatabaseEnabled:设置是否启用数据库。
  • setDomStorageEnabled:设置是否启用本地存储。
  • setCacheMode:设置使用的缓存模式。缓存模式的取值见下表
WebSettings类的缓存模式说明
LOAD_CACHE_ELSE_NETWORK优先使用缓存
LOAD_NO_CACHE不使用缓存
LOAD_CACHE_ONLY只使用缓存

3.webViewClient的常用方法

  • onPageStarted:页面开始加载时触发。可在此弹出进度对话框ProgressDialog。
  • onPageFinished:页面加载结束时触发。可在此关闭进度对话框。
  • onReceivedError:收到错误信息时触发。
  • onReceivedSslError:收到SSL错误时触发。
  • shouldOverrideUrlLoading:发生网页跳转时触发。重写该方法的目的是判断每当点击网页中的链接时,是想在当前的网页视图里跳转还是跳转到系统自带的浏览器。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
}

这里也可以选择让他跳转一个我们封装好的WebView页面,把地址传入,仿原生跳转。?

4.webChromeClient的常用方法

  • onReceivedTitle:收到页面标题时触发。
  • onProgressChanged:页面加载进度发生变化时触发。可在此刷新进度对话框的进度条。
  • onJsAlert:网页的JS代码调用alert方法时触发。可在此弹出自定义的提示对话框。
  • onJsConfirm:网页的JS代码调用confirm方法时触发。可在此弹出自定义的确认对话框。
  • onJsPrompt:网页的JS代码调用prompt方法时触发。可在此弹出自定义的提示对话框。
  • onGeolocationPermissionsShowPrompt:网页请求定位权限时触发。可在此弹出一个确认对话框,提示用户是否允许网页获得定位权限。如果不想出现弹框就允许网页获得权限。
webView.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onGeolocationPermissionsShowPrompt(String origin,GeolocationPermissions.Callback callback) {
        //不弹框允许网页获得定位权限
        callback.invoke(origin,true,false);
        super.onGeolocationPermissionsShowPrompt(origin, callback);
    }
});

5.DownloadListener的常用方法

  • onDownloadStart:文件开始下载触发。可在此接管下载动作,比如设置文件下载的方式,文件的保存路径等。
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:19:40  更:2021-08-04 11:21:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 16:12:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码