WebView设置之WebSettings_Da丶的博客-程序员宅基地

技术标签: webview  csdn  Android API  

前言

好久没在CSDN写博客了,最近有时间把一些之前项目期总结的东西,传上来给大家分享,这是本人花了3天独自翻译的.希望能够帮助,同时也希望大家可以指明错误.博主会更努力,那下面紧接着是WebView的一个小翻译系列.

导航

WebView的介绍
http://blog.csdn.net/l540675759/article/details/54709676

WebView翻译的API大全
http://blog.csdn.net/l540675759/article/details/54709664

WebView设置之WebViewClient
http://blog.csdn.net/l540675759/article/details/54709687

WebView设置之WebChromeClient
http://blog.csdn.net/l540675759/article/details/54709680

WebView设置之WebSettings
http://blog.csdn.net/l540675759/article/details/54709690

WebSettings

(1)WebSettings是控制WebView的管理者,当WebView第一次被创建的时候,它包含着一些默认设置,这些默认设置可以通过get器来获得.

(2)通过WebView的getSetting()可以获得与WebView生命周期相关的WebSetting对象.

(3)如果调用getSetting时,WebView已经destory(),那么将会抛出空指针异常.

嵌套类

==WebSettings.LayoutAlgorithm==

通过枚举来控制HTML的布局

NORMAL 

意味着没有呈现变化,建议选择当前最大的安卓版本,为了在不同的平台的Android版本进行兼容.

SINGLE_COLUMN

所有的视图内容都会移动到该宽度的View中,并形成一列.

NARROW_COLUMN

如果可能,使所有列不能超出屏幕,只能在KITKAT版本之前使用.

TEXT_AUTOSIZING

(1)基于启发式的算法来使字体大小根据段落变化,增加文本的可读性.

(2)当使用这个模式,它建议开启setSupportZoom(boolean),并且这个API支持KITKAT.

==WebSettings.pluginstate==

这个插件的状况,影响着页面是如何对待插件.

ON

意味着,任何对象都会加载一个(可能不存在)的插件来处理内容.

ON_DEMAND

意味着,如果有安装一个插件来处理内容,会显示一个占位符,直到用户来进行点击.

OFF

意味着所有的插件将不会使用,将会显示可靠安全的内容信息.

==WebSettings.RenderPriority==

HIGH 设置WebView的渲染程度高
LOW 设置WebView的渲染程度低
NORMAL 设置WebView的渲染程度普通.

==WebSettings.ZoomDensity==

枚举指定WebView所需的屏幕密度.

FAR 使屏幕看起来像240dpi
MEDIUM 使屏幕看起来像160dpi
CLOSE 使屏幕看起来像120dpi

公共方法

setAllowContentAccess(boolean)

设置是否启用在WebView访问内容URL(Content URL),内容URL访问允许WebView从系统安装一个内容提供者进行加载,默认是开启的.

setAllowFileAccess(boolean)

是否允许访问文件,默认允许。注意,这里只是允许或禁止对文件系统的访问,Assets 和 resources 文件使用file:///android_asset和file:///android_res仍是可访问的。

setAllowFileAccessFromFileURLs (boolean flag) 

是否允许运行在一个URL环境(the context of a file scheme URL)中的JavaScript访问来自其他URL环境的内容,为了保证安全,应该不允许。也请注意,这项设置只影响对file schema 资源的JavaScript访问,其他形式的访问,例如来自图片HTML单元的访问不受影响。为了防止相同的域策略(same domain policy)对ICE_CREAM_SANDWICH以及更老机型的侵害,应该显式地设置此值为false。

setAllowUniversalAccessFromFileURLs (boolean flag) 

是否允许运行在一个file schema URL环境下的JavaScript访问来自其他任何来源的内容,包括其他file schema URLs. 参见setAllowFileAccessFromFileURLs(boolean),为了确保安全,应该设置为不允许,注意这项设置只影响对file schema 资源的JavaScript访问,其他形式的访问,例如来自图片HTML单元的访问不受影响。为了防止相同的域策略(same domain policy)对ICE_CREAM_SANDWICH以及更老机型的侵害,应该显式地设置此值为false。ICE_CREAM_SANDWICH_MR1 以及更老的版本此默认值为true,JELLY_BEAN以及更新版本此默认值为false

setAppCacheEnabled (boolean flag) 

应用缓存API是否可用,默认值false, 结合setAppCachePath(String)使用。

setAppCachePath(String) 

设置应用缓存文件的路径。为了让应用缓存API可用,此方法必须传入一个应用可写的路径。该方法只会执行一次,重复调用会被忽略。

setAppCacheMaxSize (long appCacheMaxSize) 

已废弃。设置应用缓存内容的最大值。所传值会被近似为数据库支持的最近似值,因此这是一个指示值,而不是一个固定值。所传值若小于数据库大小不会让数据库调整大小。默认值是MAX_VALUE,建议将默认值设置为最大值。

setBlockNetworkImage (boolean flag) 

是否禁止从网络(通过http和https URI schemes访问的资源)下载图片资源,默认值为false。注意,除非getLoadsImagesAutomatically()返回true,否则该方法无效。还请注意,即使此项设置为false,使用setBlockNetworkLoads(boolean)禁止所有网络加载也会阻止网络图片的加载。当此项设置的值从true变为false,WebView当前显示的内容所引用的网络图片资源会自动获取。

setBlockNetworkLoads (boolean flag) 

是否禁止从网络下载数据,如果app有INTERNET权限,默认值为false,否则默认为true。使用setBlockNetworkImage(boolean) 只会禁止图片资源的加载。注意此值由true变为false,当前WebView展示的内容所引用的网络资源不会自动加载,直到调用了重载。如果APP没有INTERNET权限,设置此值为false会抛出SecurityException。

setBuiltInZoomControls (boolean enabled) 

是否使用内置的缩放机制。内置的缩放机制包括屏幕上的缩放控件(浮于WebView内容之上)和缩放手势的运用。通过setDisplayZoomControls(boolean)可以控制是否显示这些控件,默认值为false。

setCacheMode (int mode) 

重写使用缓存的方式,默认值LOAD_DEFAULT。缓存的使用方式基于导航类型,正常的页面加载,检测缓存,需要时缓存内容复现。导航返回时,内容不会复现,只有内容会从缓存盘中恢复。该方法允许客户端通过指定LOAD_DEFAULT, LOAD_CACHE_ELSE_NETWORK, LOAD_NO_CACHE or LOAD_CACHE_ONLY的其中一项来重写其行为。

setCursiveFontFamily (String font) 

设置WebView字体库字体,默认“cursive”

setDatabaseEnabled (boolean flag) 

数据库存储API是否可用,默认值false。如何正确设置数据存储API参见setDatabasePath(String)。该设置对同一进程中的所有WebView实例均有效。注意,只能在当前进程的任意WebView加载页面之前修改此项,因为此节点之后WebView的实现类可能会忽略该项设置的改变。

setDatabasePath (String databasePath) 

已废弃,数据库路径由实现(implementation)管理,调用此方法无效。
设置数据库的存储路径,为了保证数据库正确运行,该方法必须使用一个应用可写的路径。此方法只能执行一次,重复调用会被忽略。

setDefaultFixedFontSize (int size) 

设置默认固定的字体大小,默认为16,可取值1到72

setDefaultFontSize (int size) 

设置默认的字体大小,默认16,可取值1到72

setDefaultTextEncodingName (String encoding) 

设置默认的字符编码集,默认”UTF-8”.

setDefaultZoom (WebSettings.ZoomDensity zoom) 

已废弃。设置默认的缩放密度,必须在UI线程调用,默认值MEDIUM.该项设置在新应用中不推荐使用。如果WebView用于展示手机页面,可以通过调整页面的’meta viewport’ 标记中的’width’ 和 ‘initial-scale’属性实现预期效果,对于漏用标记的页面,可以使用setInitialScale(int)和setUseWideViewPort(boolean) .

setDisplayZoomControls (boolean enabled) 

使用内置的缩放机制时是否展示缩放控件,默认值true。参见setBuiltInZoomControls(boolean).

setDomStorageEnabled (boolean flag) 

DOM存储API是否可用,默认false。

setEnableSmoothTransition (boolean enable) 

已废弃,将来会成为空操作(no-op),设置当panning或者缩放或者持有当前WebView的window没有焦点时是否允许其光滑过渡,若为true,WebView会选择一个性能最大化的解决方案。例如过渡时WebView的内容可能不更新。若为false,WebView会保持精度(fidelity),默认值false。

setFantasyFontFamily (String font) 

设置fantasy字体集(font family)的名字默认为“fantasy”

setFixedFontFamily (String font) 

设置固定的字体集的名字,默认为”monospace”。

setGeolocationDatabasePath (String databasePath) 

定位数据库的保存路径,为了确保定位权限和缓存位置的持久化,该方法应该传入一个应用可写的路径。

setGeolocationEnabled (boolean flag) 

定位是否可用,默认为true。请注意,为了确保定位API在WebView的页面中可用,必须遵守如下约定:
(1) app必须有定位的权限,参见ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION;
(2) app必须提供onGeolocationPermissionsShowPrompt(String, GeolocationPermissions.Callback)回调方法的实现,在页面通过JavaScript定位API请求定位时接收通知。
作为可选项,可以在数据库中存储历史位置和Web初始权限,参见setGeolocationDatabasePath(String).

setJavaScriptCanOpenWindowsAutomatically (boolean flag) 

让JavaScript自动打开窗口,默认false。适用于JavaScript方法window.open()。

setJavaScriptEnabled (boolean flag) 

设置WebView是否允许执行JavaScript脚本,默认false,不允许。

setLayoutAlgorithm (WebSettings.LayoutAlgorithm l) 

设置布局,会引起WebView的重新布局(relayout),默认值NARROW_COLUMNS

setLightTouchEnabled (boolean enabled) 

已废弃。从 JELLY_BEAN 开始,该设置无效。允许使用轻触摸做出选择和光标悬停。

setLoadWithOverviewMode (boolean overview) 

是否允许WebView度超出以概览的方式载入页面,默认false。即缩小内容以适应屏幕宽度。该项设置在内容宽度超出WebView控件的宽度时生效,例如当getUseWideViewPort() 返回true时。

setLoadsImagesAutomatically (boolean flag) 

WebView是否下载图片资源,默认为true。注意,该方法控制所有图片的下载,包括使用URI嵌入的图片(使用setBlockNetworkImage(boolean) 只控制使用网络URI的图片的下载)。如果该设置项的值由false变为true,WebView展示的内容所引用的所有的图片资源将自动下载。

setMediaPlaybackRequiresUserGesture (boolean require) 

WebView是否需要用户的手势进行媒体播放,默认值为true。

setMinimumFontSize (int size) 

设置最小的字号,默认为8

setMinimumLogicalFontSize (int size) 

设置最小的本地字号,默认为8。

setMixedContentMode (int mode) 

当一个安全的来源(origin)试图从一个不安全的来源加载资源时配置WebView的行为。默认情况下,KITKAT及更低版本默认值为MIXED_CONTENT_ALWAYS_ALLOW,LOLLIPOP版本默认值MIXED_CONTENT_NEVER_ALLOW,WebView首选的最安全的操作模式为MIXED_CONTENT_NEVER_ALLOW ,不鼓励使用MIXED_CONTENT_ALWAYS_ALLOW。

setNeedInitialFocus (boolean flag) 

调用requestFocus(int, Android.graphics.Rect)时是否需要设置节点获取焦点,默认值为true。

setOffscreenPreRaster (boolean enabled) 

当WebView切换到后台但仍然与窗口关联时是否raster tiles,打开它可以避免在WebView从后台切换到前台时重新绘制,默认值false。在这种模式下后台的WebView占用更多的内存。请按如下准则显示内存的使用:

WebView的尺寸不能比设备的屏幕尺寸更大;
限制在少数WebView上使用该模式;
在可见的WebView和即将显现的WebView上使用;
setPluginState (WebSettings.PluginState state)
在API18以上已废弃。未来将不支持插件,不要使用。告诉WebView启用、禁用或者有即用(on demand)的插件,即用模式是指如果存在一个可以处理嵌入内容的插件,会显示一个占位图标,点击时开启。默认值OFF。

setRenderPriority (WebSettings.RenderPriority priority) 

在API18以上已废弃。不建议调整线程优先级,未来版本不会支持这样做。设置绘制(Render,很多书上翻译成渲染,貌似很专业,但是不易懂,不敢苟同)线程的优先级。不像其他设置,同一进程中只需调用一次,默认值NORMAL。

setSansSerifFontFamily (String font) 

设置无衬线字体集(sans-serif font family)的名字。默认值”sans-serif”.

setSaveFormData (boolean save) 

WebView是否保存表单数据,默认值true。

setSavePassword (boolean save) 

API18以上版本已废弃。未来版本将不支持保存WebView中的密码。设置WebView是否保存密码,默认true。

setSerifFontFamily (String font) 

设置衬线字体集(serif font family)的名字,默认“sans-serif”。

setStandardFontFamily (String font) 

设置标准字体集的名字,默认值“sans-serif”。

setSupportMultipleWindows (boolean support) 

设置WebView是否支持多窗口。如果设置为true,主程序要实现onCreateWindow(WebView, boolean, boolean, Message),默认false。

setSupportZoom (boolean support) 

WebView是否支持使用屏幕上的缩放控件和手势进行缩放,默认值true。设置setBuiltInZoomControls(boolean)可以使用特殊的缩放机制。该项设置不会影响zoomIn() and zoomOut()的缩放操作。

setTextSize (WebSettings.TextSize t) 

API14版本以上已废弃。请取代使用setTextZoom(int)。设置页面文本的尺寸,默认NORMAL。

setTextZoom (int textZoom) 

设置页面上的文本缩放百分比,默认100。

setUseWideViewPort (boolean use) 

WebView是否支持HTML的“viewport”标签或者使用wide viewport。设置值为true时,布局的宽度总是与WebView控件上的设备无关像素(device-dependent pixels)宽度一致。当值为true且页面包含viewport标记,将使用标签指定的宽度。如果页面不包含标签或者标签没有提供宽度,那就使用wide viewport。

setUserAgentString (String ua) 

设置WebView的用户代理字符串。如果字符串为null或者empty,将使用系统默认值。注意从KITKAT版本开始,加载网页时改变用户代理会让WebView再次初始化加载。

supportMultipleWindows () 

获取WebView是否支持多窗口的值。

supportZoom () 

获取WebView是否支持缩放的值。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/l540675759/article/details/54709690

智能推荐

vue 自定义表单验证器_Eason_0316的博客-程序员宅基地_vue 自定义验证器

1.首先我们自己新建一个 validatorUtils.js 文件来存放我们项目中所有的校验器内容可以是:/** * 校验使用: message: 自定义信息,extra: 对象, 额外传递的参数 *//** * 是否必须 * @param {*} rule * @param {*} value * @param {*} callback */export function validateRequire(rule, value, callback) { if (!value &a

在win7下安装SQL sever2005(完整版)_quryktcs的博客-程序员宅基地

第一步 :SQL Server Configuration Manager -> SQL Server 2005 Services 将 SQL Server Browser 设置为 running,如果没有Enable的话,右键 Properties -> Service -> StartMode = Auotomatic注意,同时必须打开 SQL Server Browser 服务

【BZOJ4538 : [Hnoi2016]网络】树链剖分+线段树+堆_ljq真的不能再吃了的博客-程序员宅基地

BZOJ4538中文题意做法 用线段树节点维护该不经过该线段的最大值那么你就用两个堆 插入的时候插入到第一个堆删除的时候加入到第二个堆每次我们查询就是第一个堆堆首如果和第二个堆堆首相同 就pop否则查第一个树链剖分找重儿子写>一直MLE到怀疑人生看了下discuss 发现oier们说要写 >=真是为oier水深火热环境堪忧/* if you can't se...

51单片机SG90舵机控制原理_超561的博客-程序员宅基地_sg90舵机三根线怎么接

舵机三根线的接法:黄线接信号线,红线接vcc,褐色线接GND舵机控制原理:通过控制PWM来控制舵机转动的角度,关于PWM的知识可以去智能小车专栏进行学习,转动周期设置为20ms,控制高电平的时间来进行舵机转动的角度。对于180°舵机t = 0.5ms——————-舵机会转动 0 °t = 1.0ms——————-舵机会转动 45°t = 1.5ms——————-舵机会转动 90°t = 2.0ms——————-舵机会转动 135°t = 2.5ms——————-舵机会...

智慧城市背景下智慧消防建设的SWOT分析_123567909762的博客-程序员宅基地

1 智慧消防在现代化城市中的建设目标1.1 自构建智慧消防大型数据库 针对消防基础数据获取不足的情况,充分运用物联网、大数据、云计算技术手段,有机融合传统的火灾远程监控系统、单位自动报警系统等数据和新型的智慧烟感、烟雾探测、燃气监测等终端物联网感知装置数据以及城市管理指挥中心的其他消防救援资源、危险源等基础数据,探索打造“防消结合”“数据共享”“智慧物联”的动态消防管理体系,以坚实的数据支撑协助城市的专项整治、网格巡查、分级治理等消防管理工作,满足消防安全的应用需求。1.2 建设智能数据研..

随便推点

小程序第一弹_brother~海的博客-程序员宅基地

前期准备:微信小程序开发工具,以及网页的相关知识(html,javaScript)本章知识了解微信小程序的基本使用。首先我们需要注册一个appID号。注册好后登陆,就可以进行开发了接着就是熟悉小程序的目录。好了,今天就到这里了。大佬详细教程:小程序的 HelloWord 01《 程序员变现指南之 微信&QQ 小程序 真的零基础开发宝典》...

基于python网络爬虫的个性化音乐播放器_馆主阿牛的博客-程序员宅基地_音乐播放器爬虫

前言当前很多人在闲暇时喜欢听音乐,那么基于这种现象,我也是肝了几个小时完成了基于python的个性化音乐播放器,现在分享给你们。开发组件python3.5 以上版本就行tkinter (python 自带的用于图形用户界面开发的模块)requests(爬虫模块)Chrome 浏览器等等功能音乐下载器功能:(1)、用户输入想要下载的歌曲或关键字名称(2)、程序获取用户所输入的歌曲名称关键字,根据该“关键字”向网站发起数据请求(3)、程序根据返回的数据信息,进行分析后,呈现清单的形式给用

努力奔跑_1.水昆的博客-程序员宅基地

CSDN的各位 ,你们好。今天是我的第一篇博客,老实的说,我能进去这个专业并对这个专业有那么多的喜爱,完全是因为我喜欢玩游戏。我从小就不太喜欢学习,有空就去玩,突然有一天,我有了一个疑问——我既然那么喜欢玩游戏,为什么不自己做一款游戏来玩呢?于是我就开始认真学习,为了能考入一个好的学习的计算机专业,但是高考还是失利了,考入了一个普通的本科,还是不是计算机专业。但是我是幸运的,在上学期结束时顺利的转入了计算机专业,并且从朋友那知道了bit还加入其中。现在的我明白了,对于计算机专业,能力才是最重要的。所以

mysql集群搭建及实现细节_放学后的泡泡的博客-程序员宅基地

文件下载地址:https://download.csdn.net/download/rainyspring4540/10351695主-从搭建准备环境:OS :Windows7 /10 ;环境变量里不要包含mysql配置mysql:mysql-5.5.zip(安装后默认用户名密码为root/root)第1步:准备mysql安装包zip将192.168.0.56的文件夹格式的mysql复制两份,...

《爬虫实战》- - 如何五分钟爬取A站实时弹幕!_Rclimber的博客-程序员宅基地_acfun 爬虫弹幕

大家好,我是Rclimber,今天给大家带来爬虫实战项目 -- 如何爬取A站视频的实时弹幕,希望一下内容对您有帮助,点个关注,以后也会给大家分享更多爬虫项目!话不多说,进入正题----这次咱们实战的需求就是 爬取A站某视频的弹幕,在GUI界面中让他展示出来!本次爬取视频的url:历时三个月!我揪出了污蔑新疆棉花的真正幕后黑手 (acfun.cn)前言:其实对于这种爬取弹幕,我认为我们首先想到的就是post请求,弹幕发送的原理为网页用特定表格数据发送post请求---接收后返回弹幕数据(理

数学建模论文排版_Youth009的博客-程序员宅基地_数学建模论文排版

文章目录1.排版软件的选择or2.欣赏优秀论文的排版3.Word基础知识4.强大的样式和多级列表功能5.制作自己的论文排版6.表格的制作和排版7.图形的制作和排版8.公式的编辑和排版9.参考文献的排版10.附录的排版11.国赛论文排版的演示1.排版软件的选择or**Word:**大家平常用的最多的文字排版软件,微软公司开发的Office 办公软件之一,一般新电脑都会自带有正版的Office三件套。LaTex:一个专业且免费的排版软件,可以用来对论文书籍等进行排版。经过LaTex排版之后的文档,结构优美

推荐文章

热门文章

相关标签