owe*_*owe 9 email android sendmail html-email
我想从我的应用程序发送一封html邮件.我知道并非所有邮件客户端都允许使用html标签.但我在API中找到了常量的Intent.EXTRA_HTML_TEXT(http://developer.android.com/reference/android/content/Intent.html#EXTRA_HTML_TEXT).
我的代码看起来像这样,但它始终只显示文本而不是html格式的文本,无论我使用的邮件客户端是什么:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT, subject);
intent.putExtra(Intent.EXTRA_TEXT, "Hello World");
intent.putExtra(Intent.EXTRA_HTML_TEXT, "<html><body><h1>Hello World</h1></body><html>");
intent.setType("text/html"); // intent.setType("plain/text");
startActivity(Intent.createChooser(intent, "Choose Email Client:"));
Run Code Online (Sandbox Code Playgroud)
那错误在哪里?
抱歉,这不是一个肯定的答案,因为它似乎不起作用,至少不是真正通用且可靠的方式。一些邮寄者对此感到满意:
String body = "<html>something</html>";
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body));
Run Code Online (Sandbox Code Playgroud)
请注意,您不需要 new EXTRA_HTML_TEXT,它也适用于旧的。如果这涵盖了您需要的所有内容,那么您可能没问题。但是,如果您还想解决许多其他可能的意图接收器,例如 Facebook、Skype 或什至 Drive 或 Keep 等应用程序,不幸的是,我找不到完美的解决方案,但我非常希望被证明是错误的。
基本上,我们有三种不同的格式:
String body = "<html>something</html>";
Spanned html = Html.fromHtml(body);
String stripped = html.toString();
Run Code Online (Sandbox Code Playgroud)
和两个可能的收件人:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
intent.putExtra(Intent.EXTRA_HTML_TEXT, ???);
intent.putExtra(Intent.EXTRA_TEXT, ???);
Run Code Online (Sandbox Code Playgroud)
我尝试了所有可能的组合,但在其中任何一个组合中,都会有一些众所周知且广泛使用的应用程序不想很好地播放。要么我们嵌入 HTML 标签,要么没有格式,甚至根本没有文本......
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |