Ответ 1
Эта библиотека является абстракцией androidx
для WebKit
(так как она опирается на APK с возможностью обновления).
При использовании этих импортов:
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import androidx.annotation.NonNull;
import androidx.webkit.WebViewCompat;
import androidx.webkit.SafeBrowsingResponseCompat;
import androidx.webkit.WebResourceErrorCompat;
import androidx.webkit.WebViewClientCompat;
Это работает примерно так:
private WebViewCompat mWebView;
...
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
this.mWebView.setWebViewClient(new WebViewClientCompat(){
@Override
public void onPageCommitVisible(@NonNull WebView view, @NonNull String url) {
super.onPageCommitVisible(view, url);
}
@Override
public void onReceivedError(@NonNull WebView view, @NonNull WebResourceRequest request, @NonNull WebResourceErrorCompat error) {
super.onReceivedError(view, request, error);
}
@Override
public void onReceivedHttpError(@NonNull WebView view, @NonNull WebResourceRequest request, @NonNull WebResourceResponse errorResponse) {
super.onReceivedHttpError(view, request, errorResponse);
}
@Override
public void onSafeBrowsingHit(@NonNull WebView view, @NonNull WebResourceRequest request, int threatType, @NonNull SafeBrowsingResponseCompat callback) {
super.onSafeBrowsingHit(view, request, threatType, callback);
}
@Override
public boolean shouldOverrideUrlLoading(@NonNull WebView view, @NonNull WebResourceRequest request) {
return super.shouldOverrideUrlLoading(view, request);
}
});
}