WebView設置之WebChromeClient

前言

好久沒在CSDN寫博客了,最近有時間把一些之前項目期總結的東西,傳上來給大家分享,這是本人花了3天獨自翻譯的.希望能夠幫助,同時也希望大家可以指明錯誤.博主會更努力,那下面緊接着是WebView的一個小翻譯系列.

導航

WebView的介紹
http://blog.csdn.net/l540675759/article/details/54709676

WebView翻譯的API大全
http://blog.csdn.net/l540675759/article/details/54709664

WebView設置之WebViewClient
http://blog.csdn.net/l540675759/article/details/54709687

WebView設置之WebChromeClient
http://blog.csdn.net/l540675759/article/details/54709680

WebView設置之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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章