如果您查看开发者网站,就会清楚地提到
如果您的应用程序面向 Android 7.1(API 级别 25)或更低版本,您可以选择 WebView 对象不检查 URL谷歌安全浏览不安全网站列表,添加以下内容
元素添加到应用程序的清单文件中:
<manifest>
<application>
<meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
android:value="false" />
...
</application>
</manifest>
对于Android 8.0,明确提到
虽然 EnableSafeBrowsing 的默认值为 true,但有时您可能只想启用安全浏览
有条件地或禁用它。 Android 8.0(API 级别 26)及更高版本
支持使用 setSafeBrowsingEnabled()。以较低 API 编译的应用程序
级别不能使用 setSafeBrowsingEnabled() 并且应该更改该值
将清单中的 EnableSafeBrowsing 设置为 false 以禁用该功能
对于 WebView 的所有实例。
如果您的目标是 Android 8.1(API 级别 27)或更高版本,您可以以编程方式定义您的应用如何响应已知威胁:
- 您可以控制您的应用是否向安全报告已知威胁
浏览。
- 您可以让您的应用程序自动执行特定操作,例如
回到安全状态——每次遇到一个 URL
被归类为已知威胁。
请查看下面的示例代码,它展示了如何指示应用程序的 WebView 实例在遇到已知威胁后始终返回安全状态:
MyWebActivity.java
private WebView mSuperSafeWebView;
private boolean mSafeBrowsingIsInitialized;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mSuperSafeWebView = new WebView(this);
mSuperSafeWebView.setWebViewClient(new MyWebViewClient());
mSafeBrowsingIsInitialized = false;
mSuperSafeWebView.startSafeBrowsing(this, new ValueCallback<Boolean>() {
@Override
public void onReceiveValue(Boolean success) {
mSafeBrowsingIsInitialized = true;
if (!success) {
Log.e("MY_APP_TAG", "Unable to initialize Safe Browsing!");
}
}
});
}
用于启用或禁用安全浏览。使用以下方法。
mSuperSafeWebView.getSettings().setSafeBrowsingEnabled(true);
MyWebViewClient.java
public class MyWebViewClient extends WebViewClient {
// Automatically go "back to safety" when attempting to load a website that
// Google has identified as a known threat. An instance of WebView calls
// this method only after Safe Browsing is initialized, so there's no
// conditional logic needed here.
@Override
public void onSafeBrowsingHit(WebView view, WebResourceRequest request,
int threatType, SafeBrowsingResponse callback) {
// The "true" argument indicates that your app reports incidents like
// this one to Safe Browsing.
callback.backToSafety(true);
Toast.makeText(view.getContext(), "Unsafe web page blocked.",
Toast.LENGTH_LONG).show();
}
}
如果您想了解的话请查看WebView 安全版本(按版本).