2011-03-29 44 views
17

我想從SD卡加載html文件。注: - >如果我加載http://www.google.com它的工作原理。 - >文件存在 - >我對互聯網和WRITE_EXTERNAL_STORAGEwebview無法從SD卡加載html文件

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    addB = (Button) findViewById(R.id.add); 
    webComp = (WebView) findViewById(R.id.webC); 

    WebSettings webSettings = webComp.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    webSettings.setSupportZoom(false); 
    webSettings.setAllowFileAccess(true); 
    webSettings.setLoadsImagesAutomatically(true); 
    webSettings.setSavePassword(false); 
    webSettings.setSaveFormData(false); 
    webSettings.setJavaScriptEnabled(true);   

    webComp.setWebViewClient(new HelloWebViewClient());      



    webComp.loadUrl("/sdcard/FMS/1/message.html");    



} 

權限,謝謝! :)

+3

什麼錯誤當你使用LogCat時,你會得到什麼?那麼「READ_EXTERNAL_STORAGE」怎麼樣?我總是用某物。像Environment.getExternalStorageDirectory()。getAbsolutePath()+「/FMS/1/message.html」。我想知道是否可以使用loadUrl方法從存儲中加載HTML文件。也許你應該嘗試一個解決方法loadData(...) – Rainer 2011-03-29 13:52:34

回答

39

Misca,

你不應該硬編碼一樣的是,SD卡的目錄。它通常在/mnt/sdcard/,但這是永遠不會保證的。您還應該始終檢查SD卡是否存在並首先安裝!

你想使用以下方法:

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
    Log.d(TAG, "No SDCARD"); 
} else { 
    webComp.loadUrl("file://"+Environment.getExternalStorageDirectory()+"/FMS/1/message.html"); 
} 
+0

其正確和工作沒有任何probs .. – 2013-01-31 04:57:35

+0

它只下載HTML文件。如果html文件包含加載圖像和腳本的相對路徑,該怎麼辦? – 2014-03-06 12:53:54

+0

你應該注意到應用程序應該擁有權限 Phuong 2015-06-03 10:13:15

1

我認爲URL是文件:///sdcard/FMS/1/message.html

0

您可以訪問它像這樣,任何文件本地.html文件就可以被加載除了視頻

webView.loadUrl("file://" + Environment.getExternalStorageDirectory() + "/myapprepository/index.html");