2

基本上,我想從用戶提供我的應用程序的某些數據生成報告。我的第一個想法是生成一個PDF文件。結果是不可行的,因爲唯一的免費庫不支持文本包裝等功能,而付費庫的許可費用約爲1000美元。找不到處理數據的活動Uri

所以我已經生成了所有內容的HTML文件,如果我在桌面版Chrome打開此文件時,它呈現的罰款。當用戶點擊分享按鈕時,應用程序應該啓動一個意圖,讓默認瀏覽器或移動Chrome瀏覽器打開該HTML文件。

我知道如何通過意圖打開瀏覽器的URL,問題是打開一個文件。 HTML文件正在通過FileProvider訪問(所以例如:「content:// [package] .fileprovider/[filename] .html」)。如果我運行myIntent.setData(htmlFileUri);並啓動意圖,則對話框中不顯示瀏覽器,只顯示文本編輯器。同樣的事情,如果我使用setDataAndType

接下來我試了Data Uri:data:text/html;base64,[html as base64]。再次,如果我將這個字符串複製到桌面Chrome中,它可以正常工作。但是,如果我開始用這個uri的意圖,我得到

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=data:text/html;base64,[base64]== typ=text/html }

最後,如果我追加http://的數據URI的開始,我可以打開Chrome或默認瀏覽器的選項。如果我這樣做,什麼都不會呈現,甚至沒有網頁的網址。

還有什麼我可以試試,或者一般有什麼建議? 在此先感謝

+0

將您的html文件保存在資產中,並從那裏或用戶webview中啓動它以在您自己的項目中顯示html – Meenal

回答

0

通過將您的意圖的數據部分設置爲text/html,AFAIK內置HtmlViewer應用程序無法可靠工作。相反,你可以

  • 複製HTML到外部存儲設備,然後設置你的意圖的URI file:///mnt/sdcard/path/to/file.html
  • 創建一個web視圖的活動,並使用loadData()方法您的應用程序內加載HTML。
+0

似乎是最簡單的方法。我剛剛找到了https://code.google.com/p/android-open-in-browser/,它可以工作,但這是一個巨大的黑客和更多的工作 – geniass

相關問題