基本上,我想根据用户提供应用的一些数据生成报告。我的第一个想法是生成一个PDF文件。结果证明这是不可行的,因为唯一的免费库不支持文本换行等功能,而付费库的许可证价格约为1000美元。
所以我已经生成了一个包含所有内容的html文件,如果我在桌面Chrome中打开这个文件,它就会很好。当用户点击共享按钮时,应用应启动一个意图,让默认浏览器或移动Chrome打开html文件。
我知道如何通过意图使用浏览器打开网址,问题是打开文件。 HTML文件是通过FileProvider访问的(例如:“content:// [package] .fileprovider / [filename] .html”)。如果我运行myIntent.setData(htmlFileUri);
并启动intent,则对话框中不显示任何浏览器,只显示文本编辑器。如果我使用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 :(得分:0)
AFAIK通过将您的意图的数据部分设置为text/html
,内置的HtmlViewer应用无法可靠地运行。相反,你可以
file:///mnt/sdcard/path/to/file.html
loadData()
方法在您的应用中加载HTML。