基本上,我想根据用户提供给我的应用程序的一些数据生成报告。我的第一个想法是生成一个 PDF 文件。事实证明这是不可行的,因为唯一的免费库不支持文本换行等功能,而付费库的许可证成本约为 1000 美元。
所以我生成了一个包含所有内容的 html 文件,如果我在桌面 Chrome 中打开这个文件,它会呈现正常。当用户单击共享按钮时,应用程序应启动一个意图,以获取默认浏览器或移动 Chrome 以打开 html 文件。
我知道如何通过意图用浏览器打开一个 url,问题是打开一个文件。正在通过 FileProvider 访问 HTML 文件(因此是 uri,例如:“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 或默认浏览器。如果我这样做,则不会呈现任何内容,甚至页面 url 也不会呈现。
还有什么我可以尝试的,或者有什么一般的建议吗?提前致谢