WebSettings用于管理WebView狀態(tài)配置妄帘,當(dāng)WebView第一次被創(chuàng)建時(shí)楞黄,WebView包含著一個(gè)默認(rèn)的配置,這些默認(rèn)的配置將通過(guò)get方法返回抡驼,通過(guò)WebView中的getSettings方法獲得一個(gè)WebSettings對(duì)象鬼廓,如果一個(gè)WebView被銷毀,在WebSettings中所有回調(diào)方法將拋出IllegalStateException異常致盟。
1碎税、setSupportZoom(boolean support)
設(shè)置WebView是否支持使用屏幕控件或手勢(shì)進(jìn)行縮放尤慰,默認(rèn)是true,支持縮放雷蹂。
getSettings.setSupportZoom(false);
2伟端、setMediaPlaybackRequiresUserGesture(boolean require)
設(shè)置WebView是否通過(guò)手勢(shì)觸發(fā)播放媒體,默認(rèn)是true匪煌,需要手勢(shì)觸發(fā)责蝠。
getSettings.setMediaPlaybackRequiresUserGesture(false);
3、setBuiltInZoomControls(boolean enabled)
設(shè)置WebView是否使用其內(nèi)置的變焦機(jī)制萎庭,該機(jī)制集合屏幕縮放控件使用霜医,默認(rèn)是false,不使用內(nèi)置變焦機(jī)制擎椰。
getSettings.setBuiltInZoomControls(true);
4支子、setDisplayZoomControls(boolean enabled)
設(shè)置WebView使用內(nèi)置縮放機(jī)制時(shí),是否展現(xiàn)在屏幕縮放控件上达舒,默認(rèn)true值朋,展現(xiàn)在控件上。
getSettings.setDisplayZoomControls(false);
5巩搏、setAllowFileAccess(boolean allow)
設(shè)置在WebView內(nèi)部是否允許訪問(wèn)文件昨登,默認(rèn)允許訪問(wèn)。
getSettings.setAllowFileAccess(false);
6贯底、setAllowContentAccess(boolean allow)
設(shè)置WebView是否使用其內(nèi)置的變焦機(jī)制丰辣,該機(jī)制結(jié)合屏幕縮放控件使用,默認(rèn)是false禽捆,不使用內(nèi)置變焦機(jī)制笙什。
getSettings.setAllowContentAccess(false);
7、setLoadWithOverviewMode(boolean overview)
設(shè)置WebView是否使用預(yù)覽模式加載界面胚想。
getSettings.setLoadWithOverviewMode(false);
8琐凭、setSaveFormData(boolean save)
設(shè)置WebView是否保存表單數(shù)據(jù),默認(rèn)true浊服,保存數(shù)據(jù)统屈。
getSettings.setSaveFormData(false);
9、setTextZoom(int textZoom)
設(shè)置WebView中加載頁(yè)面字體變焦百分比牙躺,默認(rèn)100愁憔,整型數(shù)。
getSettings.setTextZoom(100);
10孽拷、setAcceptThirdPartyCookies(boolean accept)
設(shè)置WebView訪問(wèn)第三方Cookies策略吨掌,參考CookieManager提供的方法:setShouldAcceptThirdPartyCookies。
getSettings.setAcceptThirdPartyCookies(false);
11、setUseWideViewPort(boolean use)
設(shè)置WebView是否使用viewport思犁,當(dāng)該屬性被設(shè)置為false時(shí)代虾,加載頁(yè)面的寬度總是適應(yīng)WebView控件寬度进肯;當(dāng)被設(shè)置為true激蹲,當(dāng)前頁(yè)面包含viewport屬性標(biāo)簽,在標(biāo)簽中指定寬度值生效江掩,如果頁(yè)面不包含viewport標(biāo)簽学辱,無(wú)法提供一個(gè)寬度值,這個(gè)時(shí)候該方法將被使用环形。
getSettings.setUseWideViewPort(false)策泣;
12、setSupportMultipleWindows(boolean support)
設(shè)置WebView是否支持多屏窗口抬吟,參考WebChromeClient#onCreateWindow萨咕,默認(rèn)false,不支持火本。
getSettings.setSupportMultipleWindows(true);
13危队、setLayoutAlgorithm(LayoutAlgorithm l)
設(shè)置WebView底層的布局算法,參考LayoutAlgorithm#NARROW_COLUMNS钙畔,將會(huì)重新生成WebView布局
getSettings.setLayoutAlgorithm(LayoutAlgorithm l)茫陆;
14、setStandardFontFamily(String font)
設(shè)置WebView標(biāo)準(zhǔn)字體庫(kù)字體擎析,默認(rèn)字體“sans-serif”簿盅。
getSettings.setStandardFontFamily("sans-serif");
15、setFixedFontFamily(String font)
設(shè)置WebView固定的字體庫(kù)字體揍魂,默認(rèn)“monospace”桨醋。
getSettings.setFixedFontFamily("monospace");
16、setSansSerifFontFamily(String font)
設(shè)置WebView Sans SeriFontFamily字體庫(kù)字體现斋,默認(rèn)“sans-serif”喜最。
getSettings.setSansSerifFontFamily("sans-serif");
17、setSerifFontFamily(String font)
設(shè)置WebView seri FontFamily字體庫(kù)字體步责,默認(rèn)“sans-serif”返顺。
getSettings.setSansSerifFontFamily("sans-serif");
18、setCursiveFontFamily(String font)
設(shè)置WebView字體庫(kù)字體蔓肯,默認(rèn)“cursive”
getSettings.setCursiveFontFamily("cursive");
19遂鹊、setFantasyFontFamily(String font)
設(shè)置WebView字體庫(kù)字體,默認(rèn)“fantasy”蔗包。
getSettings.setFantasyFontFamily("fantasy");
20秉扑、setMinimumFontSize(int size)
設(shè)置WebView字體最小值,默認(rèn)值8,取值1到72
getSettings.setMinimumFontSize(8);
21舟陆、setMinimumLogicalFontSize(int size)
設(shè)置WebView邏輯上最小字體值误澳,默認(rèn)值8,取值1到72
getSettings.setMinimumLogicalFontSize(8);
22秦躯、setDefaultFontSize(int size)
設(shè)置WebView默認(rèn)值字體值忆谓,默認(rèn)值16,取值1到72
getSettings.setDefaultFontSize(16);
23踱承、setDefaultFixedFontSize(int size)
設(shè)置WebView默認(rèn)固定的字體值倡缠,默認(rèn)值16,取值1到72
getSettings.setDefaultFixedFontSize(16);
24茎活、setLoadsImagesAutomatically(boolean flag)
設(shè)置WebView是否加載圖片資源昙沦,默認(rèn)true,自動(dòng)加載圖片
getSettings.setLoadsImagesAutomatically(false);
25载荔、setBlockNetworkImage(boolean flag)
設(shè)置WebView是否以http盾饮、https方式訪問(wèn)從網(wǎng)絡(luò)加載圖片資源,默認(rèn)false
getSettings.setBlockNetworkImage(true);
26懒熙、setBlockNetworkLoads(boolean flag)
設(shè)置WebView是否從網(wǎng)絡(luò)加載資源丘损,Application需要設(shè)置訪問(wèn)網(wǎng)絡(luò)權(quán)限,否則報(bào)異常
getSettings.setBlockNetworkLoads(true);
27煌珊、setJavaScriptEnabled(boolean flag)
設(shè)置WebView是否允許執(zhí)行JavaScript腳本号俐,默認(rèn)false,不允許
getSettings.setJavaScriptEnabled(true);
28定庵、setAllowUniversalAccessFromFileURLs(boolean flag)
設(shè)置WebView運(yùn)行中的腳本可以是否訪問(wèn)任何原始起點(diǎn)內(nèi)容吏饿,默認(rèn)true
getSettings.setAllowUniversalAccessFromFileURLs(false);
29、setAllowFileAccessFromFileURLs(boolean flag)
設(shè)置WebView運(yùn)行中的一個(gè)文件方案被允許訪問(wèn)其他文件方案中的內(nèi)容蔬浙,默認(rèn)值true
getSettings.setAllowFileAccessFromFileURLs(false);
30猪落、setGeolocationDatabasePath(String databasePath)
設(shè)置WebView保存地理位置信息數(shù)據(jù)路徑,指定的路徑Application具備寫(xiě)入權(quán)限
getSettings.setGeolocationDatabasePath(String path);
31畴博、setAppCacheEnabled(boolean flag)
設(shè)置Application緩存API是否開(kāi)啟笨忌,默認(rèn)false,設(shè)置有效的緩存路徑參考setAppCachePath(String path)方法
getSettings.setAppCacheEnabled(true);
32俱病、setAppCachePath(String appCachePath)
設(shè)置當(dāng)前Application緩存文件路徑官疲,Application Cache API能夠開(kāi)啟需要指定Application具備寫(xiě)入權(quán)限的路徑
getSettings.setAppCachePath(String appCachePath);
33、setDatabaseEnabled(boolean flag)
設(shè)置是否開(kāi)啟數(shù)據(jù)庫(kù)存儲(chǔ)API權(quán)限亮隙,默認(rèn)false途凫,未開(kāi)啟,可以參考setDatabasePath(String path)
getSettings.setDatabaseEnabled(false);
34溢吻、setDomStorageEnabled(boolean flag)
設(shè)置是否開(kāi)啟DOM存儲(chǔ)API權(quán)限维费,默認(rèn)false,未開(kāi)啟,設(shè)置為true犀盟,WebView能夠使用DOM storage API
getSettings.setDomStorageEnabled(true);
35而晒、setGeolocationEnabled(boolean flag)
設(shè)置是否開(kāi)啟定位功能,默認(rèn)true阅畴,開(kāi)啟定位
getSettings.setGeolocationEnabled(false);
36倡怎、setJavaScriptCanOpenWindowsAutomatically(boolean flag)
設(shè)置腳本是否允許自動(dòng)打開(kāi)彈窗,默認(rèn)false恶阴,不允許
getSettings.setJavaScriptCanOpenWindowsAutomatically(true);
37诈胜、setDefaultTextEncodingName(String encoding)
設(shè)置WebView加載頁(yè)面文本內(nèi)容的編碼豹障,默認(rèn)“UTF-8”冯事。
getSettings.setDefaultTextEncodingName("UTF-8");
38、setUserAgentString(String ua)
設(shè)置WebView代理字符串血公,如果String為null或?yàn)榭贞墙觯瑢⑹褂孟到y(tǒng)默認(rèn)值
getSettings.setUserAgentString(String ua);
39、setNeedInitialFocus(boolean flag)
設(shè)置WebView是否需要設(shè)置一個(gè)節(jié)點(diǎn)獲取焦點(diǎn)當(dāng)被回調(diào)的時(shí)候累魔,默認(rèn)true
getSettings.setNeedInitialFocus(false);
40摔笤、setCacheMode(int mode)
重寫(xiě)緩存被使用到的方法,該方法基于Navigation Type垦写,加載普通的頁(yè)面吕世,將會(huì)檢查緩存同時(shí)重新驗(yàn)證是否需要加載,如果不需要重新加載梯投,將直接從緩存讀取數(shù)據(jù)命辖,允許客戶端通過(guò)指定LOAD_DEFAULT、LOAD_CACHE_ELSE_NETWORK分蓖、LOAD_NO_CACHE尔艇、LOAD_CACHE_ONLY其中之一重寫(xiě)該行為方法,默認(rèn)值LOAD_DEFAULT
getSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
41么鹤、setMixedContentMode(int mode)
設(shè)置當(dāng)一個(gè)安全站點(diǎn)企圖加載來(lái)自一個(gè)不安全站點(diǎn)資源時(shí)WebView的行為终娃,android.os.Build.VERSION_CODES.KITKAT默認(rèn)為MIXED_CONTENT_ALWAYS_ALLOW,android.os.Build.VERSION_CODES#LOLLIPOP默認(rèn)為MIXED_CONTENT_NEVER_ALLOW蒸甜,取值其中之一:MIXED_CONTENT_NEVER_ALLOW棠耕、MIXED_CONTENT_ALWAYS_ALLOW、MIXED_CONTENT_COMPATIBILITY_MODE.
getSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);