Tôi đã một WebViewClient
gắn liền với WebView
tôi như vậy:Android - làm thế nào để đánh chặn một POST hình thức trong WebViewClient android trên mức API 4
webView.setWebViewClient(new MyWebViewClient());
Đây là triển khai thực hiện của tôi về MyWebViewClient
:
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webView.loadUrl(url);
return true;
}
}
Tôi cung cấp cho WebView
một URL để tải qua số loadUrl()
. Nếu tôi có một liên kết (a href...
) trong trang, phương pháp shouldOverrideUrlLoading
của tôi được gọi và tôi có thể chặn nhấp chuột vào liên kết.
Tuy nhiên, nếu tôi có biểu mẫu có phương thức là POST
, phương thức shouldOverrideUrlLoading
không được gọi.
Tôi nhận thấy sự cố tương tự ở đây: http://code.google.com/p/android/issues/detail?id=9122 dường như đề xuất ghi đè postUrl
trong số WebView
của tôi. Tuy nhiên, API này chỉ khả dụng bắt đầu từ cấp API 5.
Tôi có thể làm gì nếu tôi đang ở cấp API 4? Có cách nào khác để chặn bài đăng biểu mẫu không?
Bạn có thể thử ghi đè trên gọi lạiPageStarted trong WebViewClient. – bhups
Cảm ơn. Tôi đã thử điều đó và nó hoạt động được, nhưng vấn đề là tôi không muốn trang của biểu mẫu tải - đó là một URL giả nên tôi sẽ nhận được trang lỗi trên trang web. Tôi đã làm việc xung quanh điều này bằng cách kiểm tra trong onPageStarted nếu URL khớp với URL biểu mẫu của tôi và nếu có, hãy xử lý điều này trong ứng dụng của tôi và sau đó yêu cầu webViewClient quay lại. Điều đó có hợp lý không? – manisha
Bạn có tìm thấy giải pháp cho điều này không? – Sohaib