Подтвердить что ты не робот

Открыть локальный файл 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); <---

и внутри приложения он дает мне ошибку, не найденную в файле.

Любое понимание полезно.

4b9b3361

Ответ 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");