首页 > 解决方案 > 当我将项目从 SDK 版本 28 设置为目标 SDK 版本 29 时,WebView 无法正常工作

问题描述

webview 在 Target sdk 版本 28 中工作正常,当我升级到目标 sdk 版本 29 时,webview 在真实设备中停止工作。它在模拟器中运行良好。请帮忙

web_view_post_activity_content.setWebChromeClient(new WebChromeClient());
    web_view_post_activity_content.setWebViewClient(new WebViewClient());
    web_view_post_activity_content.getSettings().setJavaScriptEnabled(true);
    web_view_post_activity_content.setWebViewClient(new WebViewClient(){
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url != null && (url.startsWith("https://")  || url.startsWith("http://"))) {
                Intent i = new Intent(Intent.ACTION_VIEW);
                i.setData(Uri.parse(url));
                startActivity(i);
                return true;
            } else {
                return false;
            }
        }
    });

标签: android

解决方案


尝试以编码格式加载 HTML 内容

String base64version = Base64.encodeToString(htmlData.getBytes(), Base64.DEFAULT);
webView.loadData(base64version, "text/html; charset=UTF-8", "base64");

让我知道它是否有效。


推荐阅读