WebViewWebView的做用WebView經常使用方法WebView資源加載WebView漏洞html
各類技術都有各自的優缺點,因此結合各自的有點去作Hybrid混合應用會好一點。WevView是一個基於webkit殷勤、展示web頁面的空間。Android在4.4開始直接使用了Chrome。web
加載一個頁面緩存
WebView的狀態網絡
WebView網頁的上一個和下一個切換app
WebView清除緩存數據函數
WebSettings經常使用方法說明佈局
WebView緩存設置url
WebView在加載html頁面時,會在/data/data/packagepath目錄下生成database與cahce兩個文件夾,請求的URL記錄保存在WebViewCache.db,而URL的內容保存在WebViewCache文件夾下spa
設置WebViewClient3d
設置WebViewChromeClient
Native和JavaScript相互調用
緩存機制
WebView資源預加載
能夠在Android 的BaseApplication裏初始化一個WebView對象(用於加載經常使用的H5頁面資源),當需使用這些頁面時再從BaseApplication裏取過來直接使用
WebView的漏洞
WebView的主要漏洞有三類:任意代碼執行漏洞、密碼明文存儲漏洞、域控制不嚴格漏洞
任意代碼漏洞
addJavascriptInterface接口 4.2開始不用考慮這個問題 4.2開始規定了對被調用的函數要以@JavascriptInterface進行註解避免漏洞攻擊
內置導出的searchBoxJavaBridge_對象
內置導出的accessibility和accessibilityTraversalObject對象
WebView默認開啓密碼保存功能 當用戶輸入密碼會彈出提示框詢問用戶是否保存密碼,密碼明文保存在/data/data/pcakgename/database/webview.db中,有盜取風險
解決方案 調用WebSettings#setSavePassword(false)關閉密碼保存
域控制不嚴格漏洞
A 應用能夠經過 B 應用導出的 Activity 讓 B 應用加載一個惡意的 file 協議的 url,從而能夠獲取 B 應用的內部私有文件,從而帶來數據泄露威脅