前言
好久沒在CSDN寫博客了,最近有時間把一些之前項目期總結的東西,傳上來給大家分享,這是本人花了3天獨自翻譯的.希望能夠幫助,同時也希望大家可以指明錯誤.博主會更努力,那下面緊接着是WebView的一個小翻譯系列.
導航
WebView的介紹
http://blog.csdn.net/l540675759/article/details/54709676WebView翻譯的API大全
http://blog.csdn.net/l540675759/article/details/54709664WebView設置之WebViewClient
http://blog.csdn.net/l540675759/article/details/54709687WebView設置之WebChromeClient
http://blog.csdn.net/l540675759/article/details/54709680WebView設置之WebSettings
http://blog.csdn.net/l540675759/article/details/54709690
WebView介紹
addJavaScriptInterface(Object o,String name)
addJavaScriptInterface(Object o,String name)
class JsObject{
@JavaScriptInterface
public String toString{xxxxx}
}
使用方法:webView.addJavaScriptInterface(new JsObject(),"xxx")
參數:Object o 可被Js控制的對象,Object爲null無反應.
String Js可調用的標識.
注意:在低版本可能會存在安全風險.
CanGoBack() 返回值:boolean
得到當前WebView是否有可以回退的歷史記錄.
CanGoBackOnForward(int i) 返回值:boolean
當前頁面是否能夠滿足所需頁數情況下,能夠移動.
CanGoForward() 返回值:boolean
當前頁面是否可以向前移動.
ClearCache(boolean includeDisFiles)
清除WebView的緩存資源,這將爲所有WebView,清除緩存使用.如果爲false,則僅清理內存緩存,如果爲true,則將會清除本地緩存.
ClearClientCertPreferences(Runnable onCleaned)
(1)清除所有當前客戶端正在進行/取消的回調.
(2)當接收到廣播,ACTION_STORAGE_CHANGED.
(3)所有應用程序的webView共享的這個證書.
參數:onCleared的子線程,如果對該回調不感興趣直接傳null,就將會調用主線程來清除.
ClearFormData()
刪除自動刪除的表單信息
注意它並不會刪除webView的儲存信息,只會刪除自動彈出的信息.
ClearHistory()
告訴WebView清除前進和後退的歷史記錄.
clearMatches()
清除當前WebView界面,使用搜索(findAllSync(String))的查找匹配的字符串的高亮狀態.
clearSslPreferences()
清除SSL表單中,當前進程中錯誤的SSL證書.
CopyBackForwardList()
返回對象:WebBackForwardList
WebBackForwardList:返回的是當前WebView的歷史數據集合對象(隊列),注意返回的列表是被當前拷貝的,不同時刻會返回不同的狀態.
createPrintDocumentAdapter()
返回對象:PrintDocumentAdapter
參數:String documentName 打印文件的名稱
創建一個當WebView頁面已經定義過所有元素的打印文件的適配器.
createWebMessageChannel()
返回對象:WebMessagePort[]
創建HTML5與本地的程序的端口,方便發送信息以及其它行爲的交互,可以通過返回對象向HTML端發送交互信息.
destory()
生命週期的銷燬,銷燬當前WebView的視圖,這個方法應該在WebView視圖被系統移除後調用.
documentHasImages()
判斷下發的回調是否包含圖片的信息
如果含有圖片 Message.arg1 = 1
如果不含有圖片 Message.arg1 = 0
enableSlowWholeDocumentDraw()
(1)只針對目標版本"L",WebView有一個新的默認行爲,去有選擇的展示並繪製HTML文檔,這樣可以減小內存並且提高性能.
(2)這些情況對於開發人員是公開的,然而某些情況需要禁用.
當使用ondraw()方法去繪製獨立的對象,或者繪製可以頁面以外的區域.
當App使用capturePicture()去獲得一個非常大的HTML文檔.
注意:該方法對於HTML有一個顯著的性能成本,這種方法在使用的時候應該在創建WebView之前.
evaluateJavaScript()
void evaluateJavaScript (String script ,ValueCallBack<String> resultCallBack)
專門用於異步調用JavaScript方法,並且可以獲得一個回調.
String scrpit 是addJavaScriptInterface 傳遞的對象.
findAddress()
發現第一個需要搜索的字段,目前只有美國的地理位置可以被發現.
findAllSync()
搜索字段,並全局高亮顯示搜索結果,連續調用,將取消搜索請求.
findFocus()
返回對象: View
找到當前WebView視圖層,含有焦點的對象.
findNext()
查詢下一個已經"高亮顯示"的字段(已經執行過findAllAyns)如果已經clearMatches,那麼這個函數已經無效.
getCertficate()
獲得頂層視圖的SSL證書,如果得到的證書爲null,則說明當前網站是不安全的.
getContentHeight()
返回對象: int
獲得當前HTML視圖內容的高度
getFavicon()
返回值:Bitmap
得到當前頁面的圖標(標識),注意:此方法知道WebViewClient的onReceivedIcon之後纔有返回對象.
getHandler()
返回值:Handler
得到當前View的Handler對象,這個Handler能夠發送對象和主線程交互.
getHitTestResult()
返回值:HitTestResult
獲得當前觸摸事件的反饋信息.
getHttpAuthUsernamePassword()
參數:String host,String realm
返回對象:String[]
獲取host和realm的身份驗證信息,返回NULL意味着未發現.
getOriginalUrl()
得到原始界面的URL,返回字段可能與WebViewClient.onPageStarted不同,因爲URL隨時在改變.
getProgress()
返回值 int progress
得到當前頁面正在加載的百分比
getSettings()
返回值:WebSetting
獲得用戶控制WebView的WebSetting對象.
getTitle()
返回值:String
獲得當前WebView內容的標題,必須得在onReceiverTitle之後才能使用.
getUrl()
返回值:String
獲得當前頁面的URL,並且在onPageStarted中拿到的Url不一定會與當前一致,因爲Started之後,Url雖然被加載,但是頁面可能沒有被加載出來.
goBack()
從當前WebView的加載中進行後退操作.
goBackOrForward(int step)
從歷史記錄中,前進或後退操作,Step表示步數.
goForward()
從歷史記錄,進行前進操作
invokeZoomPicker()
調用webView的圖形變焦器,這個變焦後的圖片出現在屏幕的樣子取決變焦的等級.
isPrivateBrowsingEnabled
返回值:boolean
獲得當前的webView上面是否使用了隱私保護.
loadData(String data,String mineType,String encoding)
data : 一串給定的格式的編碼
mineType : MIME的類型 e.g:text/html
encoding : data的編碼格式
將制定的URL加載到webView上
注意:
(1)JavaScript基於源URL,在loadData方法並不適用,需要在loadDataWithBaseURL()方法,並且支付HTTP(s).
(2)如果編碼格式是Base64,那麼參數必須也是Base64格式,如果使用超出8位,請使用ASCII編碼.
特殊符號表示:
# ---------> %23
% ---------> %25
\ ---------> %27
? ---------> %3f
loadDataWithBaseURL(String baseUrl,String data,String mimeType,String encoding,String historyUrl)
參數:
(1)將給定數據加載到BaseUrl上,防止JSP的同源策略.
注意:
這種方式只能訪問本地設備文件中指定Scheme:
包括"https","http","ftp","about" or "JavaScript"
如果loadData()操作基於URL在loadDataWithBaseURL,那麼就相當於無視history list數據,並且URL屬於數據一部分.
loadUrl(String url)
加載一個Url對象
loadUrl(String url ,Map
加載一個Url對象,並且添加請求頭信息.
onPragEvent()
處理WebView上的拖動事件
onGenericMotionEvent()
通用的事件處理和onTouchEvent()差不多.
onProvideVirtualStructure(VirtualStructure structure)
詳情請見WebView.VisualStateCallBack類.
pageDown(boolean bottom)
滑動文本至WebView一半區域的大小(向下)
參數:bottom 確認當前頁面是否滑動到頁面底部
返回值: 當前頁面是否在滑動
pageUp(boolean top)
滑動文本至WebView一半區域的大小(向上)
參數:top 確認當前頁面是否滑動到頁面頂部.
返回值:當前頁面是否正在滑動.
pauseTimers()
暫停所有佈局,參數和JSP的包括WebView的計時器,注意,這是個全局請求不侷限在webView中,可能會導致程序停止.
PostUrl()
裝在Data 通過Post方法發送到Url中.
注意:
如果Url不是一個網絡的Url,那麼就會執行loadUrl()方法.
requestFocusNodeHref(Message hrefMessage)
請求當前的錨點(觸摸點)的Image或其他,如果Message = null 立刻返回.
-----Url
hrefMsg依附於請求的結果 : -----title
-----src
requestImageRef (Message msg)
請求用戶最後觸摸的URL,Message參數不能爲null
requestTimes()
復原佈局,參數JavaScript信息.
SaveWebArchive(String filename)
對當前的視圖進行存檔
SavaWebArchive(String because,boolean autoname,ValueCallBack callback)
參數:
because : 舊檔文件名
autoname : false 會取because
true 會取because爲文件夾名
callback 儲存回調的集合.
setDownloadListener(DownLoadListener listener)
當前內容並不需要進行渲染,需要下載會註冊一個監聽,來監聽下載.
setHttpAuthUserNamePassword(String host,String realm,String username,String password)
設置host,realm的驗證信息 username,password.
setNetWorkAvailable(boolean networkUp)
告訴WebView當前網絡是否可用,這將影響JavaScript的nativegatorisOnline (在線和離線的狀態)HTML5的響應事件時間.
ZoomBy(float zoomFactor)
在WebView中執行變焦操作,變焦因子 0.01f - 100f之內
< 1f ->縮放狀態
> 1f ->擴大狀態
某些頁面不支持,google支持百度不支持,這個分網站的
ZoomIn()
返回值 boolean 在這個WebView執行放大
返回true 放大成功 ,false 放大無變化.
ZoomOut()
返回值:boolean
在WebView上執行縮小
返回true 縮小成功,false 縮小無變化.