WebViewCompat的用法示例

时间:2018-10-11 16:38:47

标签: android webview androidx

偶然地,我发现有一个AndroidX的WebView支持库:androidx.webkit:webkit:1.0.0

但是我找不到有关如何使用它的任何示例代码,并且JavaDoc也没有太大帮助:https://developer.android.com/reference/androidx/webkit/package-summary

这是应该由开发人员使用还是内部库?

1 个答案:

答案 0 :(得分:2)

此库是androidx的{​​{1}}抽象(因为它依赖于可更新的APK)。

WebViewCompat.java本身告诉“不要实例化”(而且XML标记也是未知的,因此必须使用WebKit);但是类WebViewCompat有几个android.webkit.WebView方法,可以访问;另外,WebViewFeature似乎相关(IDE抱怨)。

使用这些导入时:

public static

使用WebViewClientCompat的方法如下:

import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebSettings;
import android.webkit.WebView;

import androidx.annotation.NonNull;

import androidx.webkit.SafeBrowsingResponseCompat;
import androidx.webkit.WebResourceErrorCompat;
import androidx.webkit.WebViewClientCompat;
import androidx.webkit.WebViewFeature;
import androidx.webkit.WebViewCompat;

实现private WebView 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); } }); } WebViewCompat.VisualStateCallback的工作原理如下:

interface