2011-02-24 17 views
11

Tôi tải url trong WebView nhưng, khi người dùng nhấp vào một số nút url mới được tải trong trình duyệt Android không có trong webview của tôi. Tôi nên làm gì?Cách đặt WebChromeClient để mở trang mới trong cùng một chế độ xem?

Xin cảm ơn trước.

+0

thể trùng lặp của [Android WebView, làm thế nào để xử lý đổi hướng nào trong ứng dụng thay vì mở một trình duyệt] (http://stackoverflow.com/questions/4066438/android- webview-how-to-handle-redirects-in-app-thay vì-mở-một-trình duyệt) – CommonsWare

+3

Nó không phải là bản sao, đối tượng của tôi không phải là WebViewClient nó là WebChromeClient và đối tượng này không có phương thức shouldOverrideUrlLoading. – Ilija

Trả lời

0

webchromeClient làm dường như không có khả năng này. Có vẻ ngớ ngẩn rằng WebViewClient có thể và WebChromeClient không thể.

20

Bạn phải sử dụng cả hai WebViewClientWebChromeClient.

WebChromeClient cho phép bạn tải tiến trình tải, ví dụ, trong khi WebViewClient sẽ cho phép bạn ghi đè shouldOverrideUrlLoading().

Từ trang WebView doc:

webview.setWebChromeClient(new WebChromeClient() { 
    public void onProgressChanged(WebView view, int progress) { 
    // Activities and WebViews measure progress with different scales. 
    // The progress meter will automatically disappear when we reach 100% 
    activity.setProgress(progress * 1000); 
    } 
}); 
webview.setWebViewClient(new WebViewClient() { 
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
    Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0

Tuyệt vời, cảm ơn bạn. –

Các vấn đề liên quan