我在 Android 4.1+ 设备上遇到了一个问题。
我想发送一封包含 html 链接的电子邮件(通过 Intent
)。我知道这适用于 android 2.x 设备,因为我已经这样做了几个月。
这是Java代码:
startActivity(Intent.createChooser(
new Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_SUBJECT, "A subject")
.setType("text/html")
.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("Some text ... <a href="http://www.weburl.com">Some text</a>)), "Email"));
在安卓 4.1 上: 当我使用此代码时,Gmail 会按预期显示文本,并且我会看到带下划线的蓝色链接。但是我收到了这封没有链接的邮件。
在 Android 2.x 上: 一切都很完美。我收到了带有链接的电子邮件
谁能帮我解决这个问题?
最佳答案
我认为电子邮件应用程序没有完整的 html 支持。我有以下代码:
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto","", null))
.putExtra(Intent.EXTRA_SUBJECT, "LIJSTJE fb")
.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder()
.append("<p style='font-weight:bold;'>Some Content</p>")
.append("<a>http://www.google.com</a><br/>")
.append("<a href='http://www.facebook.com'>facebook</a>")
.append("<small><p>More content</p></small>")
.toString()));
startActivity(Intent.createChooser(emailIntent, "Send email..."));
段落和新行按预期添加。然而,样式不是。此外,当您打印完整的 url 时,您会得到一个链接,但是当您像 facebook 链接那样打印时,您不会得到。
我怀疑手机上的电子邮件客户端删除了样式并确保链接链接到可见文本。因此用户知道链接指向何处。另外,如果您考虑一下, native gmail 应用程序没有样式选项。所以这可能会导致删除样式行为。
至少这是我的理论。 :)
(注意:我只在 native gmail 应用程序上测试过!)
此外,我将 Intent 类型从 SEND 更改为 SENDTO,这样它只使用电子邮件客户端而不使用其他应用程序。而且我删除了 setType() 方法,因为当您使用它时,您会收到“找不到应用程序”错误。
关于android - HTML 链接从 Intent 生成的电子邮件中消失 (Android 4.1+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14520066/