android - 无法使用 `ShareCompat.IntentBuilder` 设置粗体电子邮件正文

标签 android android-support-library

我正在尝试使用 ShareCompat.IntentBuilder 通过电子邮件应用程序共享文本, 但 HTML 标签(例如 <b>Some text</b> )会被忽略。它显示纯文本。

final String messageBody = "<b>Hello, Google!</b>";
final ShareCompat.IntentBuilder intentBuilder = ShareCompat.IntentBuilder.from(fragment.getActivity())
        .setType("text/html")
        .setSubject("Subject")
        .setHtmlText(messageBody)
        .setChooserTitle("Choose e-mail application:");
fragment.startActivity(intentBuilder.createChooserIntent());

我使用 GmailMail.Ru 电子邮件客户端进行了测试。

它仅适用于 API 16/17,但不适用于 API 19 及更高版本。

Nexus 5 - KitKat 4.4

最佳答案

不可能为所有邮件客户端实现您想要的。

由于不同的电子邮件客户端处理电子邮件的方式不同(它们使用不同的 HTML 预处理器)。他们必须准备要转换成 HTML 的 HTML,以便在他们自己的电子邮件客户端的 HTML 中安全地显示。这是一件非常困难的事情,大多数基于 Web 的电子邮件客户端的预处理器都会犯错误,过度限制并删除任何可能影响其电子邮件客户端布局的东西,即使是最轻微的可能性。

关于android - 无法使用 `ShareCompat.IntentBuilder` 设置粗体电子邮件正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42024350/

相关文章:

java - 在图库 Intent 中打开多个图像

java - 为什么我的蓝牙应用程序崩溃

android - 如何将对象附加到 ImageView 并将其返回到下一个屏幕

android - 使用搜索栏同时播放两个媒体播放器对象,调整两个媒体播放器的音量

android - 如何使用 XML 而不是 Java 更改所选微调器项目的颜色?

android - RecyclerView 适配器显示空白卡片 View

java - 多个dex文件定义Landroid/support/v7/app/ActionBar$DisplayOptions

java - R.java 没有 R.id.map 的 map

android - 将本地android支持库添加到gradle构建中,而无需使用SDK Deployer添加到mavenLocal

android - 当输入超过 TextInputLayout 的 counterMaxLength 时出现 RuntimeException