Trong ứng dụng Android của tôi, tôi cần hiển thị biểu mẫu đăng ký bên thứ ba bên trong WebView
. Thật không may, tôi cũng cần hỗ trợ các phiên bản Android < 4.3, nơi bạn gặp lỗi bắt tay SSL khi bạn kết nối với trang web. Tuy nhiên, tôi có thể tạo yêu cầu trực tiếp trên Android 4.1 trở lên với ngữ cảnh SSL tùy chỉnh đã bật TLS 1.1 một cách rõ ràng, nhưng tôi không thể chuyển ngữ cảnh SSL này vào số WebView
của mình. Tôi cố gắng để làm cho tùy chỉnh WebViewClient
TLS 1.1, 1.2 trong WebView cho android <= 4.3
private WebViewClient webViewClient = new WebViewClient() {
@Override
public void onPageFinished(WebView webView, String url) {
if (presenter != null) {
presenter.onLoadFinished();
}
}
@Override
public void onReceivedError(WebView webView,
WebResourceRequest request,
WebResourceError error) {
if (presenter != null) {
presenter.onLoadError();
}
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
handler.proceed();
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
Request request = new Request.Builder().url(url).build();
final Handler handler = new Handler(mContext.getMainLooper());
//mOkHttpClient is an OkHttpClient with my custom SSLContext which has TLS 1.1 and TLS 1.2 enabled
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, final okhttp3.Response response) throws IOException {
handler.post(new Runnable() {
@Override
public void run() {
try {
webView.loadDataWithBaseURL(
null, response.body().string(), "text/html", "utf-8", null);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
});
}
};
Nhưng điều đó không làm việc kể từ shouldOverrideUrlLoading
không được gọi vào yêu cầu POST.
Có cách nào để thực hiện công việc này (có thể là một số thay thế cho WebView
)? Bất kỳ trợ giúp được đánh giá cao.
Cảm ơn, Nó hoạt động khá tốt. – satorikomeiji
https://crosswalk-project.org/documentation/android/embedding_crosswalk.html –