4

我在 Android 4.1+ 设备上遇到了问题。我想发送一封Intent包含 html 链接的电子邮件(通过)。我知道这适用于 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"));

在 Android 4.1 上:当我使用此代码时,Gmail 会按预期显示文本,并且我看到蓝色的链接带有下划线。但我收到这封没有链接的邮件。

在 Android 2.x 上:一切都很完美。我收到带有链接的电子邮件

有人可以帮我解决这个问题吗?

4

1 回答 1

4

我认为电子邮件应用程序没有完整的 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 链接一样进行操作时,您不会。

我怀疑手机上的电子邮件客户端删除了样式并确保链接链接到可见文本。所以用户知道链接的去向。此外,如果您考虑一下,本机 gmail 应用程序没有样式选项。所以这可能会导致删除样式行为。

至少这是我的理论。:)

(注意:我只在本机 gmail 应用程序上进行了测试!)

此外,我将 Intent 类型从 SEND 更改为 SENDTO,这样它只使用电子邮件客户端而不使用其他应用程序。我删除了 setType() 方法,因为当你使用它时,你会得到一个“找不到应用程序”的错误。

于 2013-01-28T09:22:20.447 回答