安卓WebView相关设置

news/2024/9/23 4:36:27/

Android WebView 的相关设置

settings相关设置

 webView.settings.apply {//开启jsjavaScriptEnabled = true//弹出框的设置//1.NARROW_COLUMNS:可能的话使所有列的宽度不超过屏幕宽度//2.NORMAL:正常显示不做任何渲染//3.SINGLE_COLUMN:把所有内容放大webview等宽的一列中layoutAlgorithm = WebSettings.LayoutAlgorithm.NARROW_COLUMNS//它会使用网页元标记中定义的属性加载WebView。因此它按照html中的定义缩放网页。useWideViewPort = true/************ 缓存模式 **********///保存密码savePassword = true//保存表单数据saveFormData = true//开启数据库databaseEnabled = true//设置DOM Storage缓存domStorageEnabled = true//关闭webView中缓存cacheMode = WebSettings.LOAD_NO_CACHE//设置缓存路径setAppCachePath(cacheDir.absolutePath)/************ 页面自动适配 **********///步骤1.隐藏webview缩放按钮displayZoomControls = true//步骤2 设置页面布局//1)方式一,控制页面布局,有一定缺陷可能导致页面显示温度,不推荐layoutAlgorithm = WebSettings.LayoutAlgorithm.SINGLE_COLUMN//2)方式二,自动根据手机分辨率缩放,推荐useWideViewPort = trueloadWithOverviewMode = true/************ 页面缩放支持 **********///仅支持双击缩放,不支持触摸缩放(android4.0)setSupportZoom(true)//设置支持缩放,设置了此属性,setSupportZoom(true);也默认设置为truebuiltInZoomControls = true/************ 图片加载 **********///默认为false,true表示阻塞图片请求blockNetworkImage = true//支持自动加载图片loadsImagesAutomatically = true/************ 字体相关 **********///设置WebView标准字体库字体,默认字体“sans-serif”。standardFontFamily = ""//设置WebView字体最小值,默认值8,取值1到72minimumFontSize = 8//设定编码格式defaultTextEncodingName = "UTF-8"//设置在WebView内部是否允许访问文件allowFileAccess = true//设置WebView中加载页面字体变焦百分比,默认100,整型数。textZoom = 100/************ 插件相关 **********///支持插件pluginState = WebSettings.PluginState.ONsetRenderPriority(WebSettings.RenderPriority.HIGH)//多窗口supportMultipleWindows()//当webview调用requestFocus时为webview设置节点 webviewsetNeedInitialFocus(true)if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//设置Web调试WebView.setWebContentsDebuggingEnabled(true)if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//解决加载Https和Http混合模式网页加载问题mixedContentMode = WebSettings.LOAD_NORMAL}}//追加自定义标识符,一定要+=userAgentString += "/native_$packageName"}

WebClient相关设置

		//webView相关事件触发,就会通过webViewClient 中的方法回调通知webView.webViewClient = object: WebViewClient(){override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {super.onPageStarted(view, url, favicon)Log.i("webViewClient" , "页面开始加载")}override fun onPageFinished(view: WebView?, url: String?) {super.onPageFinished(view, url)Log.i("webViewClient" , "页面加载完成回调")}override fun onLoadResource(view: WebView?, url: String?) {super.onLoadResource(view, url)Log.i("webViewClient" , "加载Url资源回调")}override fun onReceivedError(view: WebView?,request: WebResourceRequest?,error: WebResourceError?) {super.onReceivedError(view, request, error)Log.i("webViewClient" , "访问地址错误回调")}override fun onReceivedSslError(view: WebView?,handler: SslErrorHandler?,error: SslError?) {super.onReceivedSslError(view, handler, error)Log.i("webViewClient" , "加载SSl错误回调")}}

webChromeClient 相关设置

 //当影响浏览器的事件到来时,就会通过WebChromeClient中的方法回调通知用法。webView.webChromeClient = object : WebChromeClient(){override fun onJsAlert(view: WebView?,url: String?,message: String?,result: JsResult?): Boolean {Log.i("webChromeClient" , "当网页调用alert()来弹出alert弹出框前回调,用以拦截alert()函数")return super.onJsAlert(view, url, message, result)}override fun onJsConfirm(view: WebView?,url: String?,message: String?,result: JsResult?): Boolean {Log.i("webChromeClient" , "当网页调用confirm()来弹出confirm弹出框前回调,用以拦截confirm()函数")return super.onJsConfirm(view, url, message, result)}override fun onJsPrompt(view: WebView?,url: String?,message: String?,defaultValue: String?,result: JsPromptResult?): Boolean {Log.i("webChromeClient" , "当网页调用prompt()来弹出prompt弹出框前回调,用以拦截prompt()函数")return super.onJsPrompt(view, url, message, defaultValue, result)}override fun onReceivedTitle(view: WebView?, title: String?) {Log.i("webChromeClient" , "网页的title回调")super.onReceivedTitle(view, title)}override fun onReceivedIcon(view: WebView?, icon: Bitmap?) {Log.i("webChromeClient" , "网页的icon回调")super.onReceivedIcon(view, icon)}override fun onShowFileChooser(webView: WebView?,filePathCallback: ValueCallback<Array<Uri>>?,fileChooserParams: FileChooserParams?): Boolean {Log.i("webChromeClient" , "文件选择回调")return super.onShowFileChooser(webView, filePathCallback, fileChooserParams)}override fun onConsoleMessage(consoleMessage: ConsoleMessage?): Boolean {Log.i("webChromeClient" , "打印 console 信息")return super.onConsoleMessage(consoleMessage)}override fun onProgressChanged(view: WebView?, newProgress: Int) {super.onProgressChanged(view, newProgress)Log.i("webChromeClient" , "通知程序当前页面加载进度")}}

http://www.ppmy.cn/news/657590.html

相关文章

webview相关

在Android N及以下版本&#xff0c;webview默认跟browser端运行在同一个进程中&#xff0c;在Android O及以上版本&#xff0c;webview默认运行在单独进程&#xff0c;称为renderProcess&#xff0c;作为browser端所有webview的容器。 browser端代码分为两部分 android sdk部…

Android:最全面的 Webview 详解

前言 现在很多App里都内置了Web网页&#xff08;Hyprid App&#xff09;&#xff0c;比如说很多电商平台&#xff0c;淘宝、京东、聚划算等等&#xff0c;如下图 那么这种该如何实现呢&#xff1f;其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用…

微信小程序开发之——WebView

一 概述 微信小程序对WebView支持的库有&#xff1a; wxParse&#xff1a;微信小程序富文本解析自定义组件&#xff0c;支持HTML及markdown解析(已过期&#xff0c;不提供支持)web-view&#xff1a;微信官方提供&#xff0c;承载网页的容器(个人类型的小程序暂不支持使用) 二…

(一) Android WebView是什么?

1.Android WebView 一些基本概念 在 Android 手机中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件. 什么是 webkit WebKit 是 Mac OS X v10.3 及以上版本所包含的软件框架(对 v10.2.7 及以上版本也可通过软件更新获取). 同 时,WebKit 也是 Mac…

手机程序员常说的webview到底是个啥东西

好像安卓和IOS程序员最常说的关于他们专业的名词就是webview&#xff0c;但是这个webview到底是个啥玩意&#xff1f; 先从安卓程序员用的webview入手&#xff0c;就几个webview的函数 WebView.loadUrl("http://www.ltplayer.com");// 加载url&#xff0c;也可以执行…

X5WebView使用

用过 Android 自带 WebView 的都知道&#xff0c;每次加载数据过多时&#xff0c;等待时间非常久&#xff0c;体验非常差。所以腾讯推出了&#xff1a;腾讯浏览服务&#xff0c;也就是 X5WebView &#xff1b;下面来看一下效果图&#xff1a; GitHub 下载地址&#xff1a;https…

[移动端开发]到底什么是WebView?

移动端开发中的WebView到底是什么&#xff1f; 前言&#xff1a;移动端开发的童鞋应该都听说过一个名词 WebView&#xff0c;那么到底什么是WebView&#xff1f;今天我们来讲一下什么是WebView吧 一、WebView到底是什么 WebView&#xff0c;直译是网页视图&#xff0c;是一个基…

webview是什么?作用是什么?和浏览器有什么关系?

Webview 是一个基于webkit的引擎&#xff0c;可以解析DOM 元素&#xff0c;展示html页面的控件&#xff0c;它和浏览器展示页面的原理是相同的&#xff0c;所以可以把它当做浏览器看待。&#xff08;chrome浏览器也是基于webkit引擎开发的&#xff0c;Mozilla浏览器是基于Gecko…