2016-09-27 40 views
0

我想在本地託管在內部存儲器中的文件。我通過谷歌的webview local server,但通過它你只能託管資產文件夾中的文件。我想從內部存儲中託管這些文件,因爲我有能力修改它無法在資源文件夾中完成的操作。android主機文件從內部存儲(本地)

任何人都可以告訴我它背後的邏輯,如果有可能嗎?任何其他建議,將不勝感激。

+0

那麼我不知道你的意思是託管文件,但如果它可以從資產完成,那麼改變代碼使用文件應該不會太難。你有什麼問題? – greenapps

+0

對於其他我認爲使用NanoHttpD實現服務一些本地文件要容易得多。 – greenapps

+0

在使用內部存儲文件創建本地服務器時承載。 在Google網絡視圖本地服務器中沒有指定文件路徑 目標(資產文件夾)是默認定義的。 – Nikethan

回答

0

您可以使用WebViewloadUrl(String url)方法:

String filePath = context.getFilesDir() + File.separator + "page.html"; 
webView.loadUrl("file://" + filePath); 
0

在Android應用程序,文件可以從比APK內的資產文件夾以外的2個位置被讀取。由於這些是正常的HTML,CSS和JS文件,因此不需要通過本地服務器專門託管,而是可以在WebView內正常顯示。

  1. 內部存儲: URL採用的file:///folder/file.html
  2. 外部存儲形式:使用Environment.getExternalStorageDirectory() 方法。 String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "folder/file.html"

否則,您可以使用離子和利用離子部署服務如here更新應用程序的基於Web的組件。這也可以在本地完成,但是您必須在應用程序中編寫一個服務來檢查部署服務器上的最新代碼庫,然後用新的代碼替換現有的文件。