loadDataWithBaseURL 在 targetSdkVersion>=30 时无法正常工作

loadDataWithBaseURL not working correct with targetSdkVersion>=30

webView.loadDataWithBaseURL("file:///" + imagePath(), htmlWithImage, "text/html", "utf-8", "");

将targetSdkVersion设置为30或更多时,HTML页面中不显示存储在imagePath()中的图像。

targetSdkVersion=29 显示图片没有问题

我需要更新targetSdkVersion为30,否则无法发布应用。 Google Play 控制台说我需要更新到 30。

有什么提示吗?

它对我有用:

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

如果不起作用,只需添加此行:

webView.getSettings().setAllowFileAccess(true);

因为webSetting.setAllowFileAccess方法在29及之前版本默认为true,30及之后版本默认为false