最近Android WebView中的错误

时间:2019-02-02 06:20:59

标签: android android-webview

使用的WebView呈现应用的内容时,没有任何人有类似的问题?似乎“#”在最近的更新中无法正常工作。

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView webView = findViewById(R.id.webView);
    String html = "<html><body>This is a #test</body></html>";
    webView.loadData(html, "text/html", null);
 }
}

在最近更新的设备中显示“ Test is a”(没有测试)。如果您在模拟器中运行这个,你可能看不出问题。

仿真器:

enter image description here

设备:

enter image description here

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。从文件上说...

  

数据是base64或URL编码的

因此html不能只是简单的字符串。应该使用base64这样编码

WebView webView = findViewById(R.id.webView);
String html = "<html><body>This is a #test</body></html>";
String base64 = Base64.encodeToString(html.getBytes(), Base64.NO_PADDING);
webView.loadData(base64, "text/html", "base64");

然后它工作正常。在以前的Chrome版本中,即使不进行编码,它也可以正常工作。