Если вы заглядываете на сайт разработчика, четко упоминается, что
Если ваше приложение предназначено для Android 7.1 (уровень API 25) или ниже, вы можете отказаться от проверки своих объектов WebView.URL-адреса для списка безопасных веб-сайтов Google Safe Browsing , добавив следующий элемент в файл манифеста вашего приложения:
<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 по версии.