El navegador de Android no ha podido usar el código fuente durante mucho tiempo. Hoy, quiero agregar una función para guardar páginas web. La parte JS es la misma. Encontré un problema: hay una comilla doble adicional para un carácter, y < se convierte en \u003C.
¿Por qué es esto?
Modificar js: devolver unescape(s) no es válido.
Modificar js: return decodeURI(s) devuelve nulo.
Modificando Java: String s = new String(value.getBytes(), StandardCharsets.UTF_8), no funciona.
String js = "javascript:function save(){var s='<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>';return s;}";
list_webView.get(currentPage).loadUrl(js);
list_webView.get(currentPage).evaluateJavascript("javascript:save()", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.e(Thread.currentThread().getStackTrace()[2] + "", "" + value);
String s = new String(value.getBytes(), StandardCharsets.UTF_8);
writeFile(button_title.getText().toString() + ".htm", s);
}
});