前言
好久沒在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
WebChromeClient
簡介
WebChromeClient是輔助WebView處理Javascript的對話框,網站圖標,網站title,加載進度等.
onCloseWindow(關閉WebView)
onCreateWindow(
onJsAlert (WebView上alert是彈不出來東西的,需要定製你的WebChromeClient處理彈出)
onJsPrompt
onJsConfirm
onProgressChanged
onReceivedIcon
onReceivedTitle
內部嵌套類
WebChromeClient.CustomViewCallback
一個回調接口使應用程序通知當前頁面的自定義視圖將要消失.
公共方法
onCustomViewHidden()
當應用程序的自定義視圖消失的方法被調用.
WebChromeClient 的公共方法
Bitmap getDefaultVideoPoster()
當應用程序暫停操作時,視頻元素是一張海報圖像,獲得該Image.
getVideoLoadingProgressView()
獲得一個View,來作爲視頻全屏加載時的緩衝視圖.
getVisitedHistory(ValueCallback<String[]> callback)
獲得所有訪問的歷史項目的列表,用於鏈接着色.
onCloseWindow(WebView window)
通知應用程序如果有必要,需要關閉和刪除在視圖結構中刪除給定的WebView,在這一點上,將會停止正在加載的WebView和消除了任何cross-scripting的javascript的能力
boolean onConsoleMessage(ConsoleMessage consoleMessage)
報告一個JavaScript控制檯消息到主機應用程序.ChromeClient如果認爲合適,那麼應該覆蓋該消息.
onCreateWindow(WebView view,
boolean isDialog,
boolean isUserGesture,
Message resultMsg)
請求應用程序創建一個新的窗口,如果應用程序選擇接受這個請求,它應該從這個方法返回true,然後創建一個新的WebView的窗口,將其插入到視圖系統,然後提供resultMsg消息與新的WebView作爲參數發送出去.
如果應用程序選擇不接受這個請求,他將返回false.
該方法默認情況是沒實現的情況下,也就是返回false.
onGeolocationPermissionsHidePrompt()
通知應用程序請求地理定位權限,如果前一個地理定位權限取消了,任何相關的UI應該隱藏起來.在此方法中進行隱藏設置.
onGeolocationPermissionShowPrompt()
通知應用程序,web內容從發出請求使用地理定位的API,但是目前沒有權限狀態,指定的應用程序應該獲得回調所需的權限狀態.
具體有關詳細信息,請參閱GeolocationPermissions.
onHideCustomView()
當前頁面通知主機應用程序已經退出全屏模式.主機應用程序必須將自定義視圖隱藏.即,傳遞給onShowCustomView的View參數,具體可以參閱WebView全屏文檔.
boolean onJsAlert(WebView view,
String url,
String message,
JsResult result)
告訴客戶端顯示JavaScript警告的dialog,如果客戶端返回true,WebView將會處理對話框,如果客戶端返回false,將會跳過繼續執行.
onJsBeforeUnload(WebView view,
String url,
String message,
JsResult result)
告訴客戶端顯示一個對話框來確認要離開當前界面,這是javaScript的onbeforeunload的方法的結果.
如果客戶端返回true,WebView將處理確定對話框和調用適當的JsResult方法.如果客戶端返回false,返回true值給JavaScript,然後離開當前頁面.
方法的默認行爲是返回false,另外設置JsResult爲真的話,會離開導航,JsResult爲假則將取消離開導航.
onJsConfirm(WebView view,
String url,
String message,
JsResult result
)
通知客戶端要展示一個確認的對話框,如果客戶端返回true,WebView將會處理這個對話框,如果返回false,那麼將會給JavaScripe返回false值,默認的行爲是返回false.
boolean onJsPrompt(WebView view,
String url,
String message,
String defaultValue,
JsPromptResult result)
告訴客戶端要向用戶顯示一個提示的對話框,如果客戶端返回true,那麼WebView將會處理提示對話框和調用適當的JsPromptJResult方法,如果客戶端返回false,會將false的值返回給JavaScript.
默認情況下將會返回false.
void onPermissionRequest(PermissionRequest request)
通知主機應用程序Web內容需要訪問本地特殊的資源對象,詢問應用程序是拒絕還是允許,主機應用程序必須調用grant(String[])或者deny().
這個方法不能被複寫,因爲調用權限被拒絕.
void onPermissionRequestCanceled(PermissionRequest request)
通知應用程序的權限請求被取消了,任何相關的UI應該被隱藏.
onProgressChanged(WebView view,
int newProgress)
告訴應用程序當前WebView的加載當前界面的進度.
onReceivedIcon(WebView view,Bitmap icon)
通知應用程序接收當前界面新的標識.
onReceivedTitle(WebView view,String title)
通知應用程序當前界面的title改變.
onReceivedTouchIconUrl(WebView view,
String url,
boolean precomposed)
通知應用程序接收/apple-touch-icon的圖片地址.
onRequestFocus(WebView view)
請求獲得WebView的焦點,這可能由於另一個WebView打開一個連接,需要被展示.
void onShowCustomView(View view,
WebChromeClient.CustomViewCallback callback)
通知主機程序當前界面已進入全屏模式.主機應用程序必須顯示自定義視圖包含web內容-視頻或者其他HTML內容再全屏模式.
詳情請關注”Full screen support” documentation “在WebView的文檔.
onShowFileChooser(WebView webview,Value)
通知應用程序顯示文件的選擇器,這是來自HTML需要輸入文件的請求,需要用戶通過”選擇文件”按鈕來操作,如果取消請求,那麼將會filePathCallback.onReceiverValue(null)並且返回true.