2012-11-02 46 views
2

我有一個由靜態本地文件組成的網站,我試圖加載到一個意圖。它使用JavaScript,所以我必須使用intent來代替webview。將Android本地html文件加載到意圖的正確路徑是什麼?

該文件位於「assets/site_files/index.html」。 這是我想使用的代碼:啓動意圖

Uri path = Uri.parse("file:///android_asset/site_files/index.html"); 
Intent intent = new Intent(Intent.ACTION_VIEW, path); 
startActivity(intent); 

應用崩潰爲控制檯的最後一個條目,這一點:

ActivityManager: Starting: Intent 

的應用程序工作正常,如果我加載該網站在Web服務器上而不是試圖加載本地版本。以下作品完美:

Uri path = Uri.parse("http://www.domain.com/test_app_static/index.html"); 
Intent intent = new Intent(Intent.ACTION_VIEW, path); 
startActivity(intent); 

但是,我需要它在本地運行,因此用戶可以運行它沒有互聯網連接。 我環顧四周,嘗試了幾種不同的解決方案,但他們都沒有爲我加載本地html文件的意圖的特定情況下工作。請幫忙!

+1

file:///android_asset/site_files/index.html本地正確運行的路徑 – ckpatel

+0

爲什麼要使用Intent而不是WebView? WebView可以正常使用JavaScript使用本地HTML文件(即使JavaScript位於同一文件夾中的外部文件中) – SimonSays

+0

謝謝!加載文件,然後一旦我啓用JavaScript的WebView工作。 – user1793383

回答

1

正確的網址是file:///android_asset/site_files/index.html。應用程序可能崩潰的原因是因爲asset文件只能由您的應用程序訪問。因此,您需要在WebView中顯示該數據。

+0

SquiresSquire,與WebView一起工作。我仍在研究一些縮放問題,但我正在研究中。謝謝! – user1793383

+0

這很酷,縮放問題可能是由於HTML代碼 – SquiresSquire

1

將index.html頁面複製到您的應用程序數據文件夾(data/data/<your.package>)。您可以使用api Activity.getDir()獲取位置,並通過MODE_WORLD_READABLE作爲參數,以便其他應用程序可以從您的應用程序數據文件夾中讀取該文件。現在您可以通過此路徑作爲intent的一部分。記住其他應用程序無法訪問您的assets文件夾。

相關問題