Intereting Posts
Редактор темы Android Studio не отображает превью Приложение несовместимо с Nexus7, работающим с Marshmallow Android-сервис для показа тостов Отображать html форматированный текст в приложении для Android Меню Android и преобразование панели действий Подпись Google Firebase, указывающая статус 12501 (не работает), в варианте сборки сборки и jks SHA Растровые изображения на ICS загружаются с неправильным пиксельным форматом Почему этот CSS не работает для Chrome на Android, но работает везде? Как получить сверхпрокрутку в стиле iPhone в Android 2.3 (Gingerbread)? Настроить список анимации для Android Почему в Android не работает «System.out.println»? Google map v2 Пользовательская информация с двумя кнопками мыши или ImageView Поддерживает ли веб-платформу Famo.us телефонную развязку? Firebase Android Настройка по умолчанию и конфиденциальность пользователя Android: как приостановить и возобновить таймер обратного отсчета?

Отправка html-адреса электронной почты в android с помощью <table> и т. Д. – действительно ли нет встроенного способа Intent?

Я неплохо прочитал об ограничениях отправки html-писем от android. Все предложения по отправке html-сообщения, похоже, состоят в том, чтобы просто передать Html.fromHtml (yourHtmlString) в намерение как Intent.EXTRA_TEXT. Это работает для нескольких базовых тегов – жирным, курсивом – но не будет ничего подобного html-таблице.

Похоже, вы могли бы попытаться расширить некоторые функции Html или реализовать свой собственный обработчик тегов, но мне интересно, не существует ли более фундаментального ограничения, которое заставит вас сделать что-то совершенно другое (например, с помощью api mail или что-то еще ).

Причина, по которой я предлагаю это, состоит в том, что, насколько известно самим намерениям, Html.fromHtml (blah) – это просто charsequence, и если вы вызываете методы в интерфейсе charsequence на этом объекте, вы не видите никаких html-файлов (в По крайней мере, я этого не сделал). Весь материал html / tag, похоже, завернут в SpannableStringBuilder, который фактически возвращает Html.fromHtml … и мне интересно, выглядит ли приложение gmail под обложками, чтобы увидеть, что такое charsequence, и затем может обрабатывать несколько тегов , Что означает, что нет никакой надежды делать что-либо на стороне приложения, чтобы получить / обмануть приложение gmail, чтобы обрабатывать все более сложное, чем полужирное, курсивное и т. Д.

Я просмотрел необработанное письмо, которое фактически отправляет приложение gmail, и оно автоматически отправляет как текст / обычную без тегов, так и версию text / html с ограниченным количеством тегов. Я даже пытался придерживаться некоторых экранированных html-тегов, которые в конечном итоге могут быть преобразованы в фактические теги в части текста / html электронной почты, но, увы, они остались сбежавшими … и это, конечно, было бы немного хаки.

В любом случае, для тех, кто, возможно, заглянул в это больше, я хотел бы сделать дополнительное подтверждение того, что стандартная андроидная функция «отправить html-email» заставит вас безумно близко к тому, что вам может понадобиться, но, в конце концов, вам нужно укусить Пуля и реализовать множество вещей более низкого уровня (например, отправка электронной почты на Android с использованием API JavaMail без использования стандартного / встроенного приложения , что означает, что вам нужно иметь дело с файлом pw и т. Д.).

Примечание (позже): Я обернул SpannableStringBuilder, возвращенный из Html.fromHtml, с помощью специального класса, который расширил SpannableStringBuilder и передал это, с целью прослушивания вызовов в Spanned interface. Оказывается, что когда вещи написаны на посылку, отправленную в намерение электронной почты, TextUtils.writeToParcel делает некоторую специальную проверку, чтобы искоренить жирный / курсивный материал, сначала проверив, является ли CharSequence экземпляром Spanned, а затем просит Промежутки (через spanned.getSpans). Тем не менее, я не вижу явной надежды на то, чтобы внести изменения, чтобы получить что-то столь же простое, как и теги table / td. И я даже попробовал модифицировать toString () моего подкласса SpannableStringBuilder, чтобы вернуть некоторый необработанный html таблицы, чтобы узнать, что произойдет, но в процессе обработки посылки оно ускользнуло где-то в другом месте.

И еще (позже): TextUtils.writeToParcel (CharSequence cs, Parcel p, …) будет, если cs является экземпляром «Spanned», напишите эти промежутки только в том случае, если они реализуют интерфейс ParcelableSpan … который является " Специальный тип Parcelable для объектов, которые будут использоваться в качестве текстовых пространств «и», может быть использован только кодом в рамках, он не предназначен для приложений для реализации своих собственных пространственных интервалов ». Таким образом, даже если вы хотели бы подключиться к этому и написать свой собственный, чтобы обрабатывать теги таблиц или что-то еще, это кажется обескураженным. Я хочу, чтобы hackbod весил здесь что-то очевидное, что я пропустил.

Solutions Collecting From Web of "Отправка html-адреса электронной почты в android с помощью <table> и т. Д. – действительно ли нет встроенного способа Intent?"

Это работает для нескольких базовых тегов – жирным, курсивом – но не будет ничего подобного html-таблице.

Скорее всего, это функция почтового клиента. Не все почтовые клиенты могут создавать произвольный HTML-код на любой платформе. Таким образом, хотя Mozilla Thunderbird позволяет создавать HTML-почту с таблицей, Gmail не делает (в любом случае, я не вижу возможности для нее в окне создания сообщений).

Мне интересно, нет ли более фундаментальных ограничений, которые заставят вас сделать что-то совершенно другое

Если вы не пишете собственный почтовый клиент, расширяя несколько классов, необходимых для того, чтобы TextView и EditText обрабатывали HTML-таблицы (это больше, чем просто класс Html ), вам не поможет.

И мне интересно, выглядит ли приложение gmail под обложками, чтобы увидеть, что такое charsequence, и затем может обрабатывать несколько тегов

TextView и EditText могут «обрабатывать несколько тегов», выстраиваясь примерно так, что Html может анализировать / генерировать, и SpannedString может представлять.

Ничто из этого не может обрабатывать HTML-таблицу. И JavaScript. Не CSS. Не iframe или любое количество других тегов.

Но, в конце концов, вам нужно укусить пулю и реализовать множество предметов более низкого уровня самостоятельно

Я бы начал с того, что задал себе вопрос, стоит ли отправлять электронную почту с таблицами прямо с телефона. Вы можете отправлять HTML-почту с таблицами с вашего сервера с помощью интерфейса веб-службы или вы можете отправлять таблицы электронной почты HTML с телефона. Ни один из них не потребует, чтобы вы собрали «материал pw».