android - 当我将项目从 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;
}
}
});
解决方案
尝试以编码格式加载 HTML 内容
String base64version = Base64.encodeToString(htmlData.getBytes(), Base64.DEFAULT);
webView.loadData(base64version, "text/html; charset=UTF-8", "base64");
让我知道它是否有效。
推荐阅读
- javascript - 冲突:多个块将资产发射到相同的文件名 ./plugin.min.css
- unix - 如何使用 AWK 将文件名中的数字附加到 csv 的前面
- jenkins - Jenkins:即使构建失败,管道也总是返回“SUCCESS”
- java - Collections.sort() 不使用 compareTo Override 进行排序
- c# - 初学者:多项选择测验
- excel - 使用 VBA 保存时修复格式错误
- django - Django papertrail 日志记录神秘地失败了
- angular - 空数组时的停止间隔
- c++ - 如何在 C 项目中链接 C++ 库
- r - 循环一个函数,每次迭代只改变一个参数变量