我在根文件夹中保存了一个文件,并尝试在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); <---
并在应用程序内部,它给我一个文件未找到错误。
任何见解都很有用。
答案 0 :(得分:16)
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;
}
}
试试这个
答案 1 :(得分:12)
实际上当您使用file:///...
打开网址时
那么这意味着你应该将文件保存在assets目录下(比如test.html)。
现在假设您必须访问test.html文件,您需要像这样写
loadURL("file:///android_asset/test.html');
答案 2 :(得分:6)
路径错误,假设未触及异常。
file:///告诉浏览器查找/ name
openFileOutput(fileName)告诉应用写入&lt; application-files-directory&gt; / fileName
您的网址应为“file:///”+ getFilesDir()+ File.separator + fileName
答案 3 :(得分:0)
对于将与应用程序捆绑在一起的文件,您可以通过在项目浏览器中右键单击您的应用程序,然后选择
,将“资产”文件夹添加到项目中新建=>文件夹=>资产文件夹。
将HTML文件添加到资产文件夹,然后通过以下方式加载它:
fileView.loadUrl("file:///android_asset/"+name);
可以在HTML中使用相同的URL链接到其他HTML或CSS文件。
答案 4 :(得分:0)
您可以先阅读资产文件,然后通过asd将其显示在webview上 像这样
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中
webview.loadData(data, "text/html", "UTF-8");