Android 4.1+中Intent生成的电子邮件中HTML链接消失

4

我需要翻译一些关于it技术的内容,涉及Android设备上的问题。我想通过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上: 一切都完美。我收到了带有链接的电子邮件。
有人能帮我解决这个问题吗?
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()方法,因为使用它会出现“找不到应用程序”的错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接