我的Android应用程序上有一个页面,它将使用以下代码显示html文件的内容 -
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intro);
WebView wv = (WebView) findViewById(R.id.WebView01);
try {
InputStream fin;
fin = getAssets().open("Preface.html");
byte[] buffer = new byte[fin.available()];
fin.read(buffer);
fin.close();
wv.loadData(new String(buffer), "text/html", "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
}
代码运行正常,但内容没有显示在webview中,我做错了什么?
答案 0 :(得分:1)
使用
wv.loadUrl("file:///android_asset/Preface.html");
确保您的文件Preface.html位于您的android资产/文件夹
中或者如果您的html文件包含javascript代码,则启用javascript支持
WebView wv = (WebView) findViewById(R.id.WebView01);
try {
InputStream fin;
fin = getAssets().open("Preface.html");
byte[] buffer = new byte[fin.available()];
fin.read(buffer);
fin.close();
wv.loadData(new String(buffer), "text/html", "UTF-8");
WebSettings webSettings = wv.getSettings();
wv.setJavaScriptEnabled(true);
} catch (IOException e) {
e.printStackTrace();
}
如果这不能解决您的问题,请粘贴您的HTML代码。
答案 1 :(得分:0)
首先,在LogCat中显示您下载的文件的内容,看看下载是否成功
答案 2 :(得分:0)
有时会发生什么,您的屏幕尺寸变得太小,无法在屏幕上显示内容。确保您为屏幕使用更大的显示分辨率。
答案 3 :(得分:0)
我的以下代码从Url加载html-content并将其显示在webview中,希望对您有所帮助:
MainActivity.java
String htmlContent = getHtmlContent();
if (htmlContent != null) {
webView.getSettings().setBuiltInZoomControls(true);
webView.loadData(htmlContent, fileType.endsWith("rfc822") ? "rfc822" : "text/html", "UTF-8");
}
getHtmlContent 方法
DownloadTask task = new DownloadTask();
try {
String result = String.valueOf(task.execute(currentFileUrl).get());
if (task.getStatus() == AsyncTask.Status.RUNNING) {
loadingProgressBar.setVisibility(View.GONE);
}
return result;
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
return null;
和 DownloadTask.java 类
public class DownloadTask extends AsyncTask<String, Void, StringBuilder> {
@Override
protected StringBuilder doInBackground(String... urls) {
StringBuilder result = new StringBuilder();
URL url;
HttpURLConnection connection;
try {
url = new URL(urls[0]);
connection = (HttpURLConnection) url.openConnection();
InputStream in = connection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while (data != -1) {
char current = (char) data;
result.append(current);
data = reader.read();
}
return result;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
希望它可以帮助某个人。
我遇到的一个问题是WebView没有显示内容,而是通过设置WebView webview = findViewById(R.id.webView);
来解决。
并删除webview = new WebView(this);