2011-04-28 130 views
9

我有一個文件保存在根文件夾中,並試圖在Web視圖中打開它。在Webview中打開本地Html文件 - Android

這是我保存代碼:

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); <--- 

,並在應用程序中它給了我找不到錯誤的文件。

任何見解都有幫助。

回答

6

路徑錯誤,假設異常未被命中。

文件:///告訴瀏覽器查找/名

openFileOutput(文件名)告訴應用程序在<應用程序的文件目錄> /文件名

您的網址應該是「文件寫:///「+ getFilesDir()+文件分割符+文件名

+0

我想對製作遊戲的Android入門。從理論上講,我可以創建一個html5 canvas和javascript遊戲,將這些文件存儲在android手機的本地文件中,然後用webview打開它們讓玩家玩遊戲? – Jacob 2011-11-02 19:47:07

15
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; 
    } 
} 

試試這個

11

其實當你打開U形RL使用file:///...
然後它意味着你應該將文件保存在assets目錄下(比如test.html)。 現在,假設你要訪問的test.html文件,你需要寫這樣

loadURL("file:///android_asset/test.html'); 
+0

我想從test.html導航到page1.html,我在test.html中使用'Page 1',因爲它們都在同一個目錄中,但是不工作 – Sarz 2017-02-03 06:48:00

相關問題