Google sửa đổi phương pháp shouldInterceptRequest sử dụng yêu cầu WebResourceRequest thay vì String url
Không, họ thêm một giây phương pháp shouldInterceptRequest()
. Cả hai đều có sẵn trong API cấp 21+; phiên bản String
có sẵn trên API cấp 11+. Mặc dù String
được đánh dấu là không được dùng nữa, nhưng phiên bản String
sẽ được hỗ trợ trong một thời gian dài, để có khả năng tương thích ngược.
Có cách nào tôi có thể viết một lớp chung mở rộng WebViewClient và xử lý cả hai phương pháp?
Việc xây dựng trong việc thực hiện các phiên bản WebResourceRequest
của shouldInterceptRequest()
chỉ đơn giản gọi thi String
của shouldInterceptRequest()
:
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
return shouldInterceptRequest(view, request.getUrl().toString());
}
(từ the source code như ngay bây giờ)
Vì vậy, bạn có hai lựa chọn :
Chỉ cần ghi đè lên phiên bản String
, nếu bạn không cần WebResourceRequest
và nó sẽ được sử dụng trên tất cả các cấp API có liên quan.
Ghi đè cả hai, biết rằng WebResourceRequest
một sẽ được sử dụng trên cấp API 21+ và phiên bản String
sẽ được sử dụng ở cấp API 11-20.
Cảm ơn bạn CommonsWare, trên thực tế những gì tôi đã làm là triển khai cả hai phương pháp và sử dụng '@TargetApi (Build.VERSION_CODES.LOLLIPOP)' trên API21. – Krystian
Tôi nghĩ rằng phiên bản chuỗi ghi đè nên được tốt. –