WebView控件之WebSettings詳解

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);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柠新,一起剝皮案震驚了整個(gè)濱河市窍荧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌登颓,老刑警劉巖搅荞,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡咕痛,警方通過(guò)查閱死者的電腦和手機(jī)痢甘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)茉贡,“玉大人塞栅,你說(shuō)我怎么就攤上這事∏簧ィ” “怎么了放椰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)愉粤。 經(jīng)常有香客問(wèn)我砾医,道長(zhǎng),這世上最難降的妖魔是什么衣厘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任如蚜,我火速辦了婚禮,結(jié)果婚禮上影暴,老公的妹妹穿的比我還像新娘错邦。我一直安慰自己,他們只是感情好型宙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布撬呢。 她就那樣靜靜地躺著,像睡著了一般妆兑。 火紅的嫁衣襯著肌膚如雪魂拦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天箭跳,我揣著相機(jī)與錄音晨另,去河邊找鬼。 笑死谱姓,一個(gè)胖子當(dāng)著我的面吹牛借尿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屉来,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼路翻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了茄靠?” 一聲冷哼從身側(cè)響起茂契,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慨绳,沒(méi)想到半個(gè)月后掉冶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體真竖,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年厌小,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了恢共。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡璧亚,死狀恐怖讨韭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情癣蟋,我是刑警寧澤透硝,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站疯搅,受9級(jí)特大地震影響濒生,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秉撇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一甜攀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧琐馆,春花似錦、人聲如沸恒序。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)歧胁。三九已至滋饲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喊巍,已是汗流浹背屠缭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留崭参,地道東北人呵曹。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像何暮,于是被迫代替她去往敵國(guó)和親奄喂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容