Ответ 1
Добавьте эту строку
webView.getSettings().setDomStorageEnabled(true);
HTML файл (test.html) -
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<link href="bootstrap.css" rel="stylesheet" type="text/css"/>
<link href="bootstrap-responsive.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<h1>Hello World!!!</h1>
<a class="btn btn-primary btn-large">
Learn more
</a>
</body>
</html>
Файлы HTML и bootstrap css помещаются в папку с ресурсами. Если я открываю HTML файл в IE/Firefox, он отображается правильно. Но Android WebView не делает это правильно
Код для WebView -
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
String url = "file:///android_asset/test.html";
webView.loadUrl(url);
IE делает это следующим образом
WebView делает это как
Что не так?
Добавьте эту строку
webView.getSettings().setDomStorageEnabled(true);
Протестировано на эмуляторе - версия Android 4.2 с Bootstrap v2.3.2
Файлы в папке с вашими приложениями:
bootstrap-responsive.css
bootstrap.css
test.html
Не нужно добавлять "android.permission.INTERNET" в манифест Android, поскольку файлы css доступны локально в папке с ресурсами приложения.
Вот скриншот того, как он отображается. Нет причин, по которым вы не могли увидеть его, если есть проблемы с файлами CSS (что опять маловероятно, так как вы можете видеть результаты в браузере).
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
String htmlData ="<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css\">"+yourdata;
webview.loadData(htmlData, "text/html", "UTF-8");
В котлине:
webview.settings.javaScriptEnabled = true