【问题标题】:Android's Email and GMail apps remove HTML formatting from emailsAndroid 的电子邮件和 GMail 应用程序从电子邮件中删除 HTML 格式
【发布时间】:2014-11-17 02:34:21
【问题描述】:

我已经进行了一些搜索,但我认为没有任何东西可以回答我关于 GMail 4.6 版的问题

我的问题是我无法在从我创建的 Android 应用程序发送的电子邮件中呈现 HTML 格式。我正在使用定义了 text/html 类型的意图。我相信问题是由 GMail 应用程序引起的,因为它会在发送之前从我的电子邮件中删除 HTML。

我已经添加了可能导致问题的代码,除非它是 GMail。

String body =
       "<table border='1'>" +
              "<tr>" +
                     "<td>Paint Cost(Exc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", (subtotal - ((subtotal * 20)/100))) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Paint Cost(Inc VAT)</td>" +
                     "<td>£" + String.format("%.2f", subtotal) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Undercoat Cost(Exc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", (undercoat - ((undercoat * 20)/100))) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Undercoat Cost(Inc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", undercoat) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Total Cost(Exc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", (total - ((total * 20)/100))) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Total Cost(Inc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", total) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Total VAT</td>" +
                     "<td>£" +  String.format("%.2f", ((total *20)/100)) + "</td>" +
              "</tr>" +
       "</table>";

emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{email});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Paint Cost");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body)
);

startActivity(Intent.createChooser(emailIntent, "Send mail..."));

提前致谢。

编辑 1

String body =
       "<table border='1'>" +
              "<tr>" +
                     "<td>Paint Cost(Exc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", (subtotal - ((subtotal * 20)/100))) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Paint Cost(Inc VAT)</td>" +
                     "<td>£" + String.format("%.2f", subtotal) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Undercoat Cost(Exc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", (undercoat - ((undercoat * 20)/100))) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Undercoat Cost(Inc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", undercoat) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Total Cost(Exc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", (total - ((total * 20)/100))) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Total Cost(Inc VAT)</td>" +
                     "<td>£" +  String.format("%.2f", total) + "</td>" +
              "</tr>" +
              "<tr>" +
                     "<td>Total VAT</td>" +
                     "<td>£" +  String.format("%.2f", ((total *20)/100)) + "</td>" +
              "</tr>" +
       "</table>";

emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{email});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Paint Cost");
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, Html.fromHtml(body)
);

startActivity(Intent.createChooser(emailIntent, "Send mail..."));

不过,这似乎反而会使 GMail 应用程序崩溃。

【问题讨论】:

  • 您不应该使用Intent.EXTRA_STREAM 而不是Intent.EXTRA_TEXT
  • @jumpingcode 这似乎只是想让 Gmail 应用程序崩溃,并且它不接受常规邮件应用程序的字符串。
  • @jumpingcode 有没有办法做到这一点,而无需在我的应用程序中创建整个电子邮件界面?

标签: android html email


【解决方案1】:

邮件客户端,当通过ACTION_SEND 调用时,允许用户编辑消息,并且并非所有邮件客户端都提供对所有可能的 HTML 标记的编辑。特别是那些使用EditText 作为编辑器基础的人不太可能支持 HTML 平板电脑。

【讨论】:

  • 这是有道理的。我只是不明白为什么它不支持它,考虑到 Gmail 主要是基于网络的,这有点奇怪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 2015-06-07
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
相关资源
最近更新 更多