Мое приложение компилирует и отправляет HTML-сообщение со следующим кодом:
String s = ...; // html text with normal & bold face, proportional & monospaced fonts, etc.
Message msg = new Message(s);
msg.setMimeType(Message.MIME_HTML);
sendMessage(subject, msg, recipients);
На iOS (iPhone X) это работает, приложение Mail открывается с правильным отображением текста в формате html.
На Android (Samsung Tab A) это не работает:
(В симуляторе с почтовым клиентом я вижу правильный исходный текст html.)
Как это решить?
Возможно это связано с https://github.com/codenameone/CodenameOne/issues/3101.
РЕДАКТИРОВАТЬ
Протестировано на следующем примере HTML:
<!DOCTYPE html>
<html>
<body>
<h2>Example</h2>
Text with <b>bold</b> and <i>italics</i>.<br>
This text on a new line.
</body>
</html>
Со следующим выводом (скриншоты чтения отправленных писем):
Кстати, при отправке обычного текста вместо HTML символы новой строки не отображаются в Gmail, в отличие от Samsung Email (см. Проблему 3101).
Я добавил к своему вопросу пример HTML (см. ИЗМЕНИТЬ) с тремя разными выходами. Возможно ли, что раньше это работало, а теперь нет из-за недавних изменений?
Немного посмотрев на код Android, который использует этот подход, я заметил, что большинство разработчиков не используют полный HTML только подмножество при создании электронной почты, например. <h2>Example</h2> Text with <b>bold</b> and <i>italics</i>.<br> This text on a new line.
Я пробовал это, и результат точно такой же. Я подал вопрос: github.com/codenameone/CodenameOne/issues/3386.
Это очень странно. Я посмотрел на код на похожие вопросы, и наш код делает то же самое внутри. Также похоже, что HTML частично принимается в gmail, поскольку пример разделен, а новая строка принимается. Кажется, что игнорируется только само форматирование, что заставляет меня думать, что это проблема gmail html
Как выглядит HTML? Если
<br>
уважают, то почему<b>
или<strong>
нет?