2

我有一个 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>

谢谢您的帮助

4

1 回答 1

4

我的解决方案是将 # 替换为 %23。

1 月 30 日的 Chrome 72 更新引入了对 web 视图的这种更改。

这个拉取请求似乎是 webview 在 #: https://chromium-review.googlesource.com/c/chromium/src/+/1297172之后被破坏的原因。

于 2019-02-06T10:47:29.243 回答