我有一个正在使用的应用程序,该应用程序具有将html文件发送到应用程序以进行打印的功能(该应用程序为Brother iPrint&Scan)。
执行此操作的代码如下
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Printable Stuff");
// Send attachment (the html file).
Uri uri = Uri.fromFile(htmlFile);
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(emailIntent, "Send To"));
这所做的是调出兼容的选择器。通常,这是gmail和兄弟iPrint&Scan应用程序。 Gmail会将其作为附件,我可以将其发送出去,并且看起来不错。我可以在浏览器中查看它,html标记看起来不错(并验证)。
现在要抓住了……兄弟iPrint&Scan应用程序将获取html文件,但它只是将html显示为文本...奇怪。它根本不会渲染。
更令人不安的是,我可以从浏览器共享页面到应用程序,并且页面可以正常显示(因此确定它可以读取和解析html吗?)
我在这里做错什么了吗?
我也尝试过:
emailIntent.setDataAndType(Uri.fromFile(htmlFile), "text/html");
而不是把多余的东西放在心上……但是兄弟打印应用程序根本不会出现在列表中(gmail确实如此)。
有任何想法吗?
最佳答案
弄清楚了。
我并没有在编程上做任何错误,但是恰好发生在兄弟应用程序不读取html的情况下。它获取网页的URL,并对其进行图像捕获以进行打印预览。
我在这里的解决方案是获取我的html文件,而不是将其直接发送到Brother应用程序,而是将其上传到网络托管服务,然后将页面的URL发送到该目的的Brother打印应用程序。
如果只有他们有解释此问题的文档:
关于android - Android-通过 Intent 发送html文件以打印应用程序,不会显示为html,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18091296/