Android webview 在“#”字符后啥也不渲染
Posted
技术标签:
【中文标题】Android webview 在“#”字符后啥也不渲染【英文标题】:Android webview rendering nothing after "#" characterAndroid webview 在“#”字符后什么也不渲染 【发布时间】:2019-06-30 05:04:41 【问题描述】:我有一个 android 应用程序,我需要在我的自定义网站上显示一个 webview。我的问题是 webview 什么都不渲染。使用“元素检查器”后,我可以看到在第一个“#”之后显示了任何 html。例如,如果我的网站是:
<!DOCTYPE html>
<html lang="en">
<head>
<title>a</title>
<style>
html
color: #ff0000;
</style>
</head>
<body>
<h1>My awesome title</h1>
</body>
</html>
webview 上呈现的 HTML 将是:
<!DOCTYPE html>
<html lang="en">
<head>
<title>a</title>
<style>
html
color:
<body>
</body>
</html>
我可以使用rgb
颜色。但我想知道这里发生了什么。另一个澄清我的问题的例子是:
<!DOCTYPE html>
<html lang="en">
<head>
<title>a</title>
<style>
html
color: rgb(255, 0, 0);
</style>
</head>
<body>
<h1>My awesome #title</h1>
<p>this won't be displayed</p>
</body>
</html>
webview 上呈现的 HTML 将是:
<!DOCTYPE html>
<html lang="en">
<head>
<title>a</title>
<style>
html
color: rgb(255, 0, 0);
</style>
</head>
<body>
<h1>My awesome </h1>
</body>
</html>
感谢您的帮助
【问题讨论】:
似乎有 webview 设置的东西你使用的是本机 webview,AdvancedWebview 可能会有所帮助:github.com/delight-im/Android-AdvancedWebView 【参考方案1】:我的解决方案是将 # 替换为 %23。
1 月 30 日 Chrome 72 更新引入了对 web 视图的此更改。
这个拉取请求似乎是 webview 在 #:https://chromium-review.googlesource.com/c/chromium/src/+/1297172 之后被破坏的原因。
【讨论】:
我认为更好的方法是将传递给 webview 的 HTML 编码为 base64,如果您使用其他特殊字符,这将避免未来的错误以上是关于Android webview 在“#”字符后啥也不渲染的主要内容,如果未能解决你的问题,请参考以下文章
在 vue 3 中获取会停止后端,并且在一次正常工作后啥也不做
jdk环境变量已经配置好了 但是cmd运行java -version后啥也不出来?
Vmware 建立虚拟机后,虚拟机打不开!打开后啥也没有! 怎么回事?
求解:Android逆向-AndroidKiller-反编译软件后啥都没改回编就失败。。。