Открыть локальный файл Html в Webview - Android
У меня есть сохраненный файл в корневой папке, и я пытаюсь открыть его в webview.
Это мой код для сохранения:
OutputStream outstream = null;
outstream = openFileOutput(fileName ,MODE_WORLD_READABLE);
/// if file the available for writing
if (outstream != null) {
/// prepare the file for writing
OutputStreamWriter outputreader = new OutputStreamWriter(outstream);
BufferedWriter buffwriter = new BufferedWriter(outputreader);
/// write the result into the file
buffwriter.write(result);
}
/// close the file
outstream.close();
} catch (java.io.FileNotFoundException e) {
System.out.println("File not found in the writing...");
} catch (IOException e) {
System.out.println("In the writing...");
}
Это мой код для вызова файла:
fileView.getSettings().setJavaScriptEnabled(true);
fileView.loadUrl("file:///" + name); <---
и внутри приложения он дает мне ошибку, не найденную в файле.
Любое понимание полезно.
Ответы
Ответ 1
WebView mWebView=(WebView)findViewById(R.id.mWebView);
mWebView.loadUrl("file:///book.html");
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSaveFormData(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.setWebViewClient(new MyWebViewClient());
private class MyWebViewClient extends WebViewClient
{
@Override
//show the web page in webview but not in web browser
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl (url);
return true;
}
}
попробуйте это
Ответ 2
Фактически, когда вы открываете URL-адрес с помощью file:///...
Тогда это означает, что вы должны сохранить файл в каталоге активов (скажем, test.html).
Теперь предположим, что вам нужно получить доступ к файлу test.html, вам нужно написать вот так:
loadURL("file:///android_asset/test.html');
Ответ 3
Путь неверен, если исключения не были удалены.
file:///указывает браузеру искать /name
openFileOutput (имя_файла) сообщает приложению записать в < application-files-directory > /имя_файла
Ваш url должен быть "file:///" + getFilesDir() + File.separator + имя_файла
Ответ 4
Для файлов, которые будут связаны с приложением, вы можете добавить папку "актив" в свой проект, щелкнув правой кнопкой мыши свое приложение в проводнике проекта и выберите
Новая => Папка => Папка с активами.
Добавьте файл HTML в папку с активами, затем загрузите его:
fileView.loadUrl("file:///android_asset/"+name);
тот же URL может использоваться в вашем HTML для ссылки на другие файлы HTML или CSS.
Ответ 5
Вы можете сначала прочитать свой файл активов, а затем отобразить его в веб-просмотре через asd, как это
BufferedReader read = null;
StringBuilder data = new StringBuilder();
try {
read = new BufferedReader(new InputStreamReader(getAssets().open("htmlFile.html"), "UTF-8"));
String webData;
while ((mLine = read.readLine()) != null) {
data.append(mline);
}
} catch (IOException e) {
log(",e.getmessage()) } finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
log(",e.getmessage())
}
}
}
а затем загрузить эти данные в веб-просмотр
webview.loadData(data, "text/html", "UTF-8");