2011-06-28 44 views
2

this question類似,我試圖將一個HTML文件加載到webview中。這個HTML文件不是在編譯時創建的,而是在運行時創建的。我加載一個網頁,並將其緩存到存儲器中供以後使用,以防用戶未聯網並希望查看該頁面上的信息。將保存的html文件加載到webview中

這裏是我寫的HTML出來:

FileOutputStream fos = openFileOutput("info.html", Context.MODE_PRIVATE); 

    URL url = new URL(surl); 
    InputStream is = url.openStream(); 

    ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); 
    int bufferSize = 1024; 
    byte[] buffer = new byte[bufferSize]; 

    int len = 0; 
    while ((len = is.read(buffer)) != -1) 
    { 
     byteBuffer.write(buffer, 0, len); 
    } 
    String outputString = new String(byteBuffer.toByteArray()); 

    fos.write(outputString.getBytes()); 

    fos.close(); 

我能夠打開和讀取類似的方式與HTML,但由於某些原因,試圖將HTML加載到web視圖作爲字符串不起作用。我認爲webview將其打開爲文件會更容易(因爲它無論如何都被保存爲文件)。我不確定現在加載此文件的正確方法。以下是我已經嘗試了一些方法:

view.loadUrl("file:///info.html"); 
view.loadUrl("info.html"); 
view.loadUrl("/info.html"); 

回答

4

嘗試

文件:///data/data/info.html

可能只是一個數據,但我認爲本地文件存儲在你的應用的數據部分。

+1

實際上,你在這裏。 http://www.techjini.com/blog/2009/01/10/android-tip-1-contentprovider-accessing-local-file-system-from-webview-showing-image-in-webview-using-內容/ – Andrew

+0

似乎是一個很好的解決方案,除了他的示例代碼是如此糟糕的記錄 –

+0

附近,我可以告訴,我實現了這個正確的,但我只是得到「所請求的文件不fou.d沒有內容提供商:內容://com.company.app/info.html「 –

相關問題