2012-03-30 30 views
13

Trong ứng dụng của tôi, shouldOverrideUrlLoading() không được gọi trên phiên bản 3.2 của Honeycombe. Tôi đã thử nghiệm nó trên 2.2 và 4.0.1 và tất cả họ đều làm việc tốt.Android webviewOverrideUrlLoading không được gọi là

Đây có phải là lỗi trong Honeycomb không? Làm thế nào tôi có thể làm việc xung quanh nó?

tôi cần phải gửi tiêu đề tùy chỉnh cho mọi yêu cầu trong shouldOverrideUrlLoading()

view.loadUrl(url,headers); 

Cảm ơn trước.

+0

'shouldOverrideUrlLoading()' không được kích hoạt khi yêu cầu được POST (có thể đây là lý do). –

+0

@SYLARRR Tôi đã thử cả GET và POST trên phiên bản khác và nó hoạt động. – Riddle

+0

Chức năng này thường không bao giờ được gọi. Tôi đã tìm thấy cùng một vấn đề trên một số trang web bao gồm www.youtube.com Tôi chưa đào sâu đủ để tìm hiểu lý do, nhưng về cơ bản chức năng này không đáng tin cậy. – Lee

Trả lời

10

Phương thức này sẽ chỉ được gọi khi người dùng thực hiện điều hướng. Nó sẽ không luôn luôn được gọi nếu trang web chuyển hướng người dùng. Một trường hợp phổ biến cho điều này là một trang web sử dụng AJAX để thay đổi nội dung của trang hoặc chuyển hướng người dùng.

Kiểm tra các cuộc gọi lại khác trong WebViewClient để tìm một ứng dụng phù hợp với nhu cầu của bạn: onLoadResource, onPageStarted. Trong trường hợp của bạn, bạn đang nhắm mục tiêu mức API 11+, do đó, nênInterceptRequest cũng có sẵn cho bạn.

+0

không có phương pháp nào trong số 3 phương pháp này được gọi nhưng thỉnh thoảng tôi tìm thấy từ các nhật ký mà chúng thực sự được kích hoạt! thói quen này có đáng tin cậy không? –

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