2017-02-03 2 views
2

Я пытаюсь использовать текст через почтовое приложение, используя ShareCompat.IntentBuilder, но теги HTML (например, <b>Some text</b>) игнорируются. Он показывает простой текст.Не удается установить жирный текст сообщения электронной почты, используя `ShareCompat.IntentBuilder`

final String messageBody = "<b>Hello, Google!</b>"; 
final ShareCompat.IntentBuilder intentBuilder = ShareCompat.IntentBuilder.from(fragment.getActivity()) 
     .setType("text/html") 
     .setSubject("Subject") 
     .setHtmlText(messageBody) 
     .setChooserTitle("Choose e-mail application:"); 
fragment.startActivity(intentBuilder.createChooserIntent()); 

я тестировал с Gmail и Mail.Ru почтовых клиентов.

Это работает для меня только на API 16/17, но он не работает API 19 и больше.

Nexus 5 - KitKat 4.4

+0

Я только что пробовал с ** Outlook **, и он работает. Кажется, что некоторые приложения электронной почты не обрабатывают HTML-текст правильно. Любые другие идеи? –

ответ

1

Это невозможно добиться того, что вы хотите для всех почтовых клиентов.

Как разные почтовые клиенты обрабатывают электронные письма по-разному (они используют разные препроцессоры HTML). Они должны подготовить HTML-код для преобразования в HTML, который можно безопасно отображать в HTML-документе своего собственного почтового клиента. Это удивительно сложная задача, и большинство препроцессоров почтовых клиентов в Интернете будут ошибаться на стороне чрезмерного ограничения и удаления чего-либо даже с малейшим потенциалом, влияющим на макет своего почтового клиента.