在 android 的最新版本中,webview 无法打开某些网站

webview doesn't open some sites in recent versions of android

我有一个可以打开 webview 的应用程序,但我发现在 android 的最新版本中我无法打开某些网站。

在我收到错误 Page not found 之前,但我在搜索时发现 this link 上面写着:

android:usesCleartextTraffic

Indicates whether the app intends to use cleartext network traffic, such as cleartext HTTP. The default value for apps that target API level 27 or lower is "true". Apps that target API level 28 or higher default to "false".

...

所以我在 AndroidManifest.xml 中添加了 android:usesCleartextTraffic="true",现在 webview 是白色的,什么也没有显示

我的网络视图activity:

public class WebviewUrl extends AppCompatActivity {
private WebView webView;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_webview_url);

    openURL();
}

private void openURL() {
    Intent getUrl = getIntent();
    String url = getUrl.getStringExtra("url");

    webView = findViewById(R.id.webview);
    webView.setWebViewClient(new WebViewClient());
    webView.loadUrl(url);

    webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    WebSettings webSettings = webView.getSettings();
    webSettings.setDomStorageEnabled(true);
    webSettings.setJavaScriptEnabled(true);
    webSettings.setLoadsImagesAutomatically(true);

    webView.getSettings().setSupportMultipleWindows(true);
    webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);

    webView.setWebViewClient(new WebViewClient() {
        @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            webView.loadUrl("file:///android_asset/error.html");
        } });

    webView.addJavascriptInterface(new WebAppInterface(this), "Android");
}

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    }
    else {
        super.onBackPressed();
    }
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    webView.saveState(outState);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
        webView.goBack();
        return true;
    }
    else
    {
        finish();
    }
    return super.onKeyDown(keyCode, event);
}
}

有人可以帮忙吗?

更新:现在重新出现找不到页面

我解决了。在我的 AndroidManifest.xml 中,我有这两行 'together' 并且我删除了 android:networkSecurityConfig="@xml/network_security_config":

<application
    ...
    android:networkSecurityConfig="@xml/network_security_config" <!--I removed that one -->
    android:usesCleartextTraffic="true"
>