скопировать HTML в UIPasteboard - PullRequest
3 голосов
/ 13 марта 2010

Я хочу перенести HTML из моего приложения в почтовое приложение iPhone. У меня уже есть текст HTML - чтобы не сказать & LT; span style = 'color: red'> Test & LT; / span> Я могу поместить это в UIPasteBoard - но когда я вставляю это в почту, я получаю источник HTML.

Когда я помещаю ту же строку в HTMLView - выделите ее и скопируйте, чтобы она вставлялась как красный текст в почту.

Что мне нужно сделать, чтобы поместить строку в UIPasteBoard так, чтобы она вставлялась как красный текст в почтовое приложение? Я искал «типы форматов» - и обнаружил, что UIPasteBoard возвращает «тип монтажной платы Aplle Web Archive», когда у меня есть элемент (скопированный из UIWebView) в буфер обмена. Но установка этого типа как при добавлении контента в UIPasteBoard ничего не вставляет в почтовое приложение.

Манфред

Ответы [ 4 ]

8 голосов
/ 22 июля 2010

Это не правда.Вы можете вставить НИЧЕГО в монтажную панель, перейдите к документации.

Я наконец собрал учебник, который показывает, как копировать HTML в приложение Почта.http://mcmurrym.wordpress.com/2010/08/13/pasting-simplehtml-into-the-mail-app-ios/

2 голосов
/ 14 ноября 2014

У меня работает HTML-копия, поэтому она правильно вставляется во встроенные приложения Mail и Notes. Это выглядит так:

NSString *htmlContent = @"This is <span style='font-weight:bold'>HTML</span>";
NSString *content = @"This is HTML!";
NSDictionary *dict = @{(NSString *)kUTTypeText: content, (NSString *)kUTTypeHTML: htmlContent};
[[UIPasteboard generalPasteboard] setItems:@[dict]];

Чтобы получить доступ к этим константам типа, вам нужно импортировать это:

#import <MobileCoreServices/UTCoreTypes.h>
2 голосов
/ 02 августа 2010

по той же ссылке, которую вы дали в своем комментарии, вы найдете этот абзац вверху.

Унифицированный идентификатор типа (UTI) часто используется для типа представления (иногда называемого типом монтажной панели). Например, вы можете использовать kUTTypeJPEG (константа для public.jpeg) в качестве типа представления данных JPEG. Тем не менее, приложения могут свободно использовать любую строку, которую они хотят, для типа представления ; однако для типов данных для конкретных приложений рекомендуется использовать нотацию обратного DNS для обеспечения уникальности типа (например, com.myCompany.myApp.myType).

Справа внизу есть ссылка. http://developer.apple.com/iphone/library/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html#//apple_ref/doc/uid/TP40001319

Что объясняет ИМП.

Наконец, эта ссылка дает вам НЕСКОЛЬКО типов http://developer.apple.com/iphone/library/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1

Конечно, этот список не ВСЕ типы, так как вы можете создавать свои собственные типы.

Я успешно вставил html в почтовое приложение. Я дам тебе хорошее место для начала ...

Создайте приложение, которое будет отображать типы данных в монтажном столе. Перейти на сафари на устройстве, скопировать веб-страницу. Запустите ваше приложение. Вы заметите, что тип монтажной платы - «Тип монтажной платы Apple Web Archive». Обратите внимание, что это действительно тип картона (пользовательский). Если вы попытаетесь продублировать функцию мобильного копирования и вставки safari, создав веб-архив и попытаясь вставить его в виде текста в почтовое приложение, файл веб-архива будет отображаться в формате raw xml. Если вы определили тип как «Тип монтажной платы Apple Web Archive», почтовое приложение фактически отформатирует вставку как HTML.

Если вы хотите знать, как выглядит веб-архив. В настольном сафари просто сохраните веб-страницу в виде архива и просмотрите файл в программе чтения текста (текстовое редактирование попытается его проанализировать, поэтому вы можете использовать другую программу для просмотра архива xml).

Пожалуйста, прочитайте всю документацию, так как вы можете обнаружить, что вы можете делать пользовательские типы по ссылке, которую вы мне прислали.

0 голосов
/ 16 марта 2010

Нет, не может. UIPasterBoard принимает только строки, изображения, URL-адреса и цвета.

...