2015-06-20 99 views
0

我想通過瀏覽器打開下載的html文件,將它們傳遞給一個意圖,並從我的活動開始。從意圖的瀏覽器中打開html文件

我知道有十幾個關於這個問題的線程(例如this)。

但是,這些方法似乎都不起作用。

到目前爲止,我有:

File file = //myHTMLFile; 
Intent browserIntent = new Intent(Intent.ACTION_VIEW); 
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE); 
browserIntent.setData(Uri.fromFile(file)); 

我試着設置Mimeypestext/html的,添加/刪除類別,甚至使用multipe MIME類型和額外的MIME類型標誌,但沒有這些想法就職於我。

目前一個「默認」瀏覽器將打開,無法顯示該文件。我想在Chrome,Firefox或其他常用瀏覽器中打開文件。

也怪異:我從Uri.fromFile()收到的Uri字符串不可由Chrome打開。

該路徑看起來像file:///data/data/myapp/website.html

該文件本身位於/storage/emulated/0/myapp/website.html。以file:///爲前綴傳遞此值,Chrome將顯示該網站。

Uri.fromFile是否正確?

回答

2

該路徑看起來像file:///data/data/myapp/website.html。

假設myapp真的是你的應用程序ID,這是指向內部存儲,並沒有其他的應用程序可以訪問(例外:植根設備)。

Uri.fromFile是否正確?

Uri.fromFile()工作正常,但您傳遞的file未正確創建。

除此之外,請記住,瀏覽器不必支持file://計劃,所以有些人可能不會。

+0

感謝您的快速回答!我現在正在外部存儲器中創建文件。有沒有其他方法可以通過意向直接在Chrome中打開文件?當直接在Chrome中複製文件:/// - path時,它將加載網站 – Frame91

+0

@ Frame91:「我現在在外部存儲中創建文件」 - 這不是「文件」指向的內容,基於你有什麼問題。 「有沒有其他方法可以通過意向直接在Chrome中打開文件?」 - 我不知道Chrome支持哪些方案,並且這些方案可能會在未來版本的Chrome中發生變化。 'http'和'https'看起來是很有價值的候選人,如果Chrome支持'content',用於'FileProvider'或你自己的'ContentProvider',那將會很不錯。 – CommonsWare

+0

我現在解決了外部存儲問題,這就是我的意思。我有一個小錯誤,現在URI已正確創建。感謝您指出錯誤! – Frame91