webView 的WebSettings說明

1.setAllowContentAccess (boolean allow)

? ? ? ?是否允許在WebView中訪問內(nèi)容URL(Content Url),默認(rèn)允許。內(nèi)容Url訪問允許WebView從安裝在系統(tǒng)中的內(nèi)容提供者載入內(nèi)容。

2.setAllowFileAccess (boolean allow)

? ? ? 是否允許訪問文件,默認(rèn)允許。注意,這里只是允許或禁止對文件系統(tǒng)的訪問,Assets 和 resources 文件使用file:///android_asset和file:///android_res仍是可訪問的。

3.setAllowFileAccessFromFileURLs (boolean flag)

? ? ? 是否允許運(yùn)行在一個(gè)URL環(huán)境(the context of a file scheme URL)中的JavaScript訪問來自其他URL環(huán)境的內(nèi)容,為了保證安全,應(yīng)該不允許。也請注意,這項(xiàng)設(shè)置只影響對file schema 資源的JavaScript訪問,其他形式的訪問,例如來自圖片HTML單元的訪問不受影響。為了防止相同的域策略(same domain policy)對ICE_CREAM_SANDWICH以及更老機(jī)型的侵害,應(yīng)該顯式地設(shè)置此值為false。

4.setAllowUniversalAccessFromFileURLs (boolean flag)

? ? ? 是否允許運(yùn)行在一個(gè)file schema URL環(huán)境下的javascript訪問來自其他任何來源的內(nèi)容,包括其他file schema URLs.參見setAllowFileAccessFromFileURLs(boolean),為了確保安全,應(yīng)該設(shè)置為不允許,注意這項(xiàng)設(shè)置只影響對file schema 資源的JavaScript訪問,其他形式的訪問,例如來自圖片HTML單元的訪問不受影響。為了防止相同的域策略(same domain policy)對ICE_CREAM_SANDWICH以及更老機(jī)型的侵害,應(yīng)該顯式地設(shè)置此值為false。ICE_CREAM_SANDWICH_MR1 以及更老的版本此默認(rèn)值為true,JELLY_BEAN以及更新版本此默認(rèn)值為false

5.setAppCacheEnabled (boolean flag)

? ? ? 應(yīng)用緩存API是否可用,默認(rèn)值false, 結(jié)合setAppCachePath(String)使用。

6.setAppCachePath(String)

? ? ? 設(shè)置應(yīng)用緩存文件的路徑。為了讓應(yīng)用緩存API可用,此方法必須傳入一個(gè)應(yīng)用可寫的路徑。該方法只會執(zhí)行一次,重復(fù)調(diào)用會被忽略。

7.setAppCacheMaxSize (long appCacheMaxSize)

? ? ? 已廢棄。設(shè)置應(yīng)用緩存內(nèi)容的最大值。所傳值會被近似為數(shù)據(jù)庫支持的最近似值,因此這是一個(gè)指示值,而不是一個(gè)固定值。所傳值若小于數(shù)據(jù)庫大小不會讓數(shù)據(jù)庫調(diào)整大小。默認(rèn)值是MAX_VALUE,建議將默認(rèn)值設(shè)置為最大值。

8.setBlockNetworkImage (boolean flag)

? ? ? ?是否禁止從網(wǎng)絡(luò)(通過http和https URI schemes訪問的資源)下載圖片資源,默認(rèn)值為false。注意,除非getLoadsImagesAutomatically()返回true,否則該方法無效。還請注意,即使此項(xiàng)設(shè)置為false,使用setBlockNetworkLoads(boolean)禁止所有網(wǎng)絡(luò)加載也會阻止網(wǎng)絡(luò)圖片的加載。當(dāng)此項(xiàng)設(shè)置的值從true變?yōu)閒alse,WebView當(dāng)前顯示的內(nèi)容所引用的網(wǎng)絡(luò)圖片資源會自動獲取。

9.setBlockNetworkLoads (boolean flag)

? ? ? 是否禁止從網(wǎng)絡(luò)下載數(shù)據(jù),如果app有INTERNET權(quán)限,默認(rèn)值為false,否則默認(rèn)為true。使用setBlockNetworkImage(boolean) 只會禁止圖片資源的加載。注意此值由true變?yōu)閒alse,當(dāng)前WebView展示的內(nèi)容所引用的網(wǎng)絡(luò)資源不會自動加載,直到調(diào)用了重載。如果APP沒有INTERNET權(quán)限,設(shè)置此值為false會拋出SecurityException。

10.setBuiltInZoomControls (boolean enabled)

? ? ? 是否使用內(nèi)置的縮放機(jī)制。內(nèi)置的縮放機(jī)制包括屏幕上的縮放控件(浮于WebView內(nèi)容之上)和縮放手勢的運(yùn)用。通過setDisplayZoomControls(boolean)可以控制是否顯示這些控件,默認(rèn)值為false。

11.setCacheMode (int mode)

? ? ? ?重寫使用緩存的方式,默認(rèn)值LOAD_DEFAULT。緩存的使用方式基于導(dǎo)航類型,正常的頁面加載,檢測緩存,需要時(shí)緩存內(nèi)容復(fù)現(xiàn)。導(dǎo)航返回時(shí),內(nèi)容不會復(fù)現(xiàn),只有內(nèi)容會從緩存盤中恢復(fù)。該方法允許客戶端通過指定LOAD_DEFAULT, LOAD_CACHE_ELSE_NETWORK, LOAD_NO_CACHE or LOAD_CACHE_ONLY的其中一項(xiàng)來重寫其行為。

12.setCursiveFontFamily (String font)

? ? ? ?設(shè)置WebView字體庫字體,默認(rèn)“cursive”

13.setDatabaseEnabled (boolean flag)

? ? ? ? 數(shù)據(jù)庫存儲API是否可用,默認(rèn)值false。如何正確設(shè)置數(shù)據(jù)存儲API參見setDatabasePath(String)。該設(shè)置對同一進(jìn)程中的所有WebView實(shí)例均有效。注意,只能在當(dāng)前進(jìn)程的任意WebView加載頁面之前修改此項(xiàng),因?yàn)榇斯?jié)點(diǎn)之后WebView的實(shí)現(xiàn)類可能會忽略該項(xiàng)設(shè)置的改變。

14.setDatabasePath (String databasePath)

? ? ? 已廢棄,數(shù)據(jù)庫路徑由實(shí)現(xiàn)(implementation)管理,調(diào)用此方法無效。

設(shè)置數(shù)據(jù)庫的存儲路徑,為了保證數(shù)據(jù)庫正確運(yùn)行,該方法必須使用一個(gè)應(yīng)用可寫的路徑。此方法只能執(zhí)行一次,重復(fù)調(diào)用會被忽略。

15.setDefaultFixedFontSize (int size)

? ? ? ?設(shè)置默認(rèn)固定的字體大小,默認(rèn)為16,可取值1到72

16.setDefaultFontSize (int size)

? ? ? 設(shè)置默認(rèn)的字體大小,默認(rèn)16,可取值1到72

17.setDefaultTextEncodingName (String encoding)

? ? ? ?設(shè)置默認(rèn)的字符編碼集,默認(rèn)”UTF-8”.

18.setDefaultZoom (WebSettings.ZoomDensity zoom)

? ? ? ? 已廢棄。設(shè)置默認(rèn)的縮放密度,必須在UI線程調(diào)用,默認(rèn)值MEDIUM.該項(xiàng)設(shè)置在新應(yīng)用中不推薦使用。如果WebView用于展示手機(jī)頁面,可以通過調(diào)整頁面的’meta viewport’ 標(biāo)記中的’width’ 和 ‘initial-scale’屬性實(shí)現(xiàn)預(yù)期效果,對于漏用標(biāo)記的頁面,可以使用setInitialScale(int)和setUseWideViewPort(boolean) .

19.setDisplayZoomControls (boolean enabled)

? ? ? ?使用內(nèi)置的縮放機(jī)制時(shí)是否展示縮放控件,默認(rèn)值true。參見setBuiltInZoomControls(boolean).

20.setDomStorageEnabled (boolean flag)

? ? ? DOM存儲API是否可用,默認(rèn)false。

21.setEnableSmoothTransition (boolean enable)

? ? ? ?已廢棄,將來會成為空操作(no-op),設(shè)置當(dāng)panning或者縮放或者持有當(dāng)前WebView的window沒有焦點(diǎn)時(shí)是否允許其光滑過渡,若為true,WebView會選擇一個(gè)性能最大化的解決方案。例如過渡時(shí)WebView的內(nèi)容可能不更新。若為false,WebView會保持精度(fidelity),默認(rèn)值false。

22.setFantasyFontFamily (String font)

? ? ? 設(shè)置fantasy字體集(font family)的名字默認(rèn)為“fantasy”

23.setFixedFontFamily (String font)

? ? ?設(shè)置固定的字體集的名字,默認(rèn)為”monospace”。

24.setGeolocationDatabasePath (String databasePath)

? ? ?定位數(shù)據(jù)庫的保存路徑,為了確保定位權(quán)限和緩存位置的持久化,該方法應(yīng)該傳入一個(gè)應(yīng)用可寫的路徑。

25.setGeolocationEnabled (boolean flag)

? ? ? 定位是否可用,默認(rèn)為true。請注意,為了確保定位API在WebView的頁面中可用,必須遵守如下約定:

? ? ? (1) app必須有定位的權(quán)限,參見ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION;

? ? ? ?(2) app必須提供onGeolocationPermissionsShowPrompt(String, GeolocationPermissions.Callback)回調(diào)方法的實(shí)現(xiàn),在頁面通過JavaScript定位API請求定位時(shí)接收通知。

作為可選項(xiàng),可以在數(shù)據(jù)庫中存儲歷史位置和Web初始權(quán)限,參見setGeolocationDatabasePath(String).

26.setJavaScriptCanOpenWindowsAutomatically (boolean flag)

? ? ? ?讓JavaScript自動打開窗口,默認(rèn)false。適用于JavaScript方法window.open()。

27.setJavaScriptEnabled (boolean flag)

? ? ? 設(shè)置WebView是否允許執(zhí)行JavaScript腳本,默認(rèn)false,不允許。

28.setLayoutAlgorithm (WebSettings.LayoutAlgorithm l)

? ? ? 設(shè)置布局,會引起WebView的重新布局(relayout),默認(rèn)值NARROW_COLUMNS

29.setLightTouchEnabled (boolean enabled)

? ? ? 已廢棄。從 JELLY_BEAN 開始,該設(shè)置無效。允許使用輕觸摸做出選擇和光標(biāo)懸停。

30.setLoadWithOverviewMode (boolean overview)

? ? ? 是否允許WebView度超出以概覽的方式載入頁面,默認(rèn)false。即縮小內(nèi)容以適應(yīng)屏幕寬度。該項(xiàng)設(shè)置在內(nèi)容寬度超出WebView控件的寬度時(shí)生效,例如當(dāng)getUseWideViewPort() 返回true時(shí)。

31.setLoadsImagesAutomatically (boolean flag)

? ? ? ? WebView是否下載圖片資源,默認(rèn)為true。注意,該方法控制所有圖片的下載,包括使用URI嵌入的圖片(使用setBlockNetworkImage(boolean) 只控制使用網(wǎng)絡(luò)URI的圖片的下載)。如果該設(shè)置項(xiàng)的值由false變?yōu)閠rue,WebView展示的內(nèi)容所引用的所有的圖片資源將自動下載。

32.setMediaPlaybackRequiresUserGesture (boolean require)

? ? ? ?WebView是否需要用戶的手勢進(jìn)行媒體播放,默認(rèn)值為true。

33.setMinimumFontSize (int size)

? ? ? ?設(shè)置最小的字號,默認(rèn)為8

34.setMinimumLogicalFontSize (int size)

? ? ? ?設(shè)置最小的本地字號,默認(rèn)為8。

35.setMixedContentMode (int mode)

? ? ? ?當(dāng)一個(gè)安全的來源(origin)試圖從一個(gè)不安全的來源加載資源時(shí)配置WebView的行為。默認(rèn)情況下,KITKAT及更低版本默認(rèn)值為MIXED_CONTENT_ALWAYS_ALLOW,LOLLIPOP版本默認(rèn)值MIXED_CONTENT_NEVER_ALLOW,WebView首選的最安全的操作模式為MIXED_CONTENT_NEVER_ALLOW ,不鼓勵(lì)使用MIXED_CONTENT_ALWAYS_ALLOW。

36.setNeedInitialFocus (boolean flag)

調(diào)用requestFocus(int,Android.graphics.Rect)時(shí)是否需要設(shè)置節(jié)點(diǎn)獲取焦點(diǎn),默認(rèn)值為true。

37.setOffscreenPreRaster (boolean enabled)

? ? ? ?當(dāng)WebView切換到后臺但仍然與窗口關(guān)聯(lián)時(shí)是否raster tiles,打開它可以避免在WebView從后臺切換到前臺時(shí)重新繪制,默認(rèn)值false。在這種模式下后臺的WebView占用更多的內(nèi)存。請按如下準(zhǔn)則顯示內(nèi)存的使用:

WebView的尺寸不能比設(shè)備的屏幕尺寸更大;

限制在少數(shù)WebView上使用該模式;

在可見的WebView和即將顯現(xiàn)的WebView上使用;

38.setPluginState (WebSettings.PluginState state)

? ? ? ? 在API18以上已廢棄。未來將不支持插件,不要使用。告訴WebView啟用、禁用或者有即用(on demand)的插件,即用模式是指如果存在一個(gè)可以處理嵌入內(nèi)容的插件,會顯示一個(gè)占位圖標(biāo),點(diǎn)擊時(shí)開啟。默認(rèn)值OFF。

39.setRenderPriority (WebSettings.RenderPriority priority)

? ? ? ? 在API18以上已廢棄。不建議調(diào)整線程優(yōu)先級,未來版本不會支持這樣做。設(shè)置繪制(Render,很多書上翻譯成渲染,貌似很專業(yè),但是不易懂,不敢茍同)線程的優(yōu)先級。不像其他設(shè)置,同一進(jìn)程中只需調(diào)用一次,默認(rèn)值NORMAL。

40.setSansSerifFontFamily (String font)

? ? ? ? 設(shè)置無襯線字體集(sans-serif font family)的名字。默認(rèn)值”sans-serif”.

41.setSaveFormData (boolean save)

? ? ? ? WebView是否保存表單數(shù)據(jù),默認(rèn)值true。

42.setSavePassword (boolean save)

? ? ? ?API18以上版本已廢棄。未來版本將不支持保存WebView中的密碼。設(shè)置WebView是否保存密碼,默認(rèn)true。

43.setSerifFontFamily (String font)

? ? ? ?設(shè)置襯線字體集(serif font family)的名字,默認(rèn)“sans-serif”。

44.setStandardFontFamily (String font)

? ? ? ?設(shè)置標(biāo)準(zhǔn)字體集的名字,默認(rèn)值“sans-serif”。

45.setSupportMultipleWindows (boolean support)

? ? ? ?設(shè)置WebView是否支持多窗口。如果設(shè)置為true,主程序要實(shí)現(xiàn)onCreateWindow(WebView, boolean, boolean, Message),默認(rèn)false。

46.setSupportZoom (boolean support)

? ? ? ? WebView是否支持使用屏幕上的縮放控件和手勢進(jìn)行縮放,默認(rèn)值true。設(shè)置setBuiltInZoomControls(boolean)可以使用特殊的縮放機(jī)制。該項(xiàng)設(shè)置不會影響zoomIn() and zoomOut()的縮放操作。

47.setTextSize (WebSettings.TextSize t)

? ? ? ? API14版本以上已廢棄。請取代使用setTextZoom(int)。設(shè)置頁面文本的尺寸,默認(rèn)NORMAL。

48.setTextZoom (int textZoom)

? ? ? ?設(shè)置頁面上的文本縮放百分比,默認(rèn)100。

49.setUseWideViewPort (boolean use)

? ? ? ? WebView是否支持HTML的“viewport”標(biāo)簽或者使用wide viewport。設(shè)置值為true時(shí),布局的寬度總是與WebView控件上的設(shè)備無關(guān)像素(device-dependent pixels)寬度一致。當(dāng)值為true且頁面包含viewport標(biāo)記,將使用標(biāo)簽指定的寬度。如果頁面不包含標(biāo)簽或者標(biāo)簽沒有提供寬度,那就使用wide viewport。

50.setUserAgentString (String ua)

? ? ? ?設(shè)置WebView的用戶代理字符串。如果字符串為null或者empty,將使用系統(tǒng)默認(rèn)值。注意從KITKAT版本開始,加載網(wǎng)頁時(shí)改變用戶代理會讓W(xué)ebView再次初始化加載。

51.supportMultipleWindows ()

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

52.supportZoom ()

? ? ? ?獲取WebView是否支持縮放的值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • 1.WebSettings webSettings=webView.getSettings(); setAllow...
    LAu_閱讀 5,657評論 0 4
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 7,319評論 0 17
  • WebView簡介 String getUrl():獲取當(dāng)前頁面的URL。 reload():重新reload當(dāng)前...
    QM閱讀 3,312評論 0 52
  • WebSettings用于管理WebView狀態(tài)配置,當(dāng)WebView第一次被創(chuàng)建時(shí),WebView包含著一個(gè)默認(rèn)...
    游戲開發(fā)小Y閱讀 25,845評論 1 19

友情鏈接更多精彩內(nèi)容