2010-03-13 45 views
3

我想將HTML從我的應用程序傳輸到iPhone郵件應用程序。 我已經有HTML文本 - 我可以把它放在UIPasteBoard上 - 但是當我把它粘貼到郵件中時,我得到了html源文件。將HTML複製到UIPasteboard

當我在HTMLView中放置相同的字符串 - 選擇它並將其複製粘貼爲紅色文本郵件。

我需要做些什麼才能將字符串放在UIPasteBoard中,以便它作爲紅色文本粘貼到郵件應用程序中? 我一直在尋找「格式類型」 - 並發現當剪貼板中有元素(從UIWebView複製)時,UIPasteBoard返回「Aplle Web Archive粘貼板類型」。 但是,將內容添加到UIPasteBoard時,將其設置爲類型將不會在郵件應用程序中粘貼任何內容。

Manfred

回答

-12

不,它不能。 UIPasterBoard只接受字符串,圖像,URL和顏色。

+0

我怕有人會說,這:)謝謝 – ManniAT 2010-03-16 10:05:07

+0

雖然這個答案被標記爲正確的,如下所述,您可以將HTML複製到UIPasteBoard。見下面的maxpower的答案。有關將HTML從應用程序粘貼到iOS郵件應用程序的簡短代碼片段,請參閱http://stackoverflow.com/q/6566152/531205 – Obliquely 2011-07-04 02:44:54

+0

完全不正確!即使UIPasteBoard參考指出,您可以將自定義文件類型放在粘貼板上。 – Akshay 2011-09-29 10:32:47

8

這是不正確的。你可以將任何東西粘貼到粘貼板上,閱讀文檔。

我終於把一個教程,顯示如何將HTML複製到郵件應用程序。 http://mcmurrym.wordpress.com/2010/08/13/pasting-simplehtml-into-the-mail-app-ios/

+0

請問您能告訴我,在3.x UIPasteBoard DOC中,可以找到這些其他的(「任何」)嗎? 我遵循了您的友好建議並閱讀了文檔:http://developer.apple.com/iphone/library/documentation/uikit/reference/UIPasteboard_Class/Reference.html#//apple_ref/doc/uid/TP40008243-CH1-SW49 也許還有其他文檔我應該閱讀 - 告訴我他們在哪裏。 – ManniAT 2010-08-02 09:36:05

2

對於您在評論中提供的同一鏈接,您會發現此段落位於頂部。

統一類型標識符(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

這解釋了UTI。

最後這個鏈接給你幾種類型http://developer.apple.com/iphone/library/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html#//apple_ref/doc/uid/TP40009259-SW1

當然,這名單是不是所有的類型,你可以創建自己的類型。

我已經成功地將html粘貼到郵件應用程序中。我會給你一個開始的好地方...

創建一個應用程序,它將顯示粘貼板中的數據類型。在設備上轉到Safari,複製一個網頁。運行您的應用程序,您會注意到該紙板類型是「Apple Web Archive粘貼板類型」。請注意,這實際上是一種紙板類型(自定義)。如果您嘗試通過創建Web檔案並嘗試將其作爲文本粘貼到郵件應用程序中來自己複製Safari瀏覽器移動複製和粘貼功能,它會將Web檔案文件顯示爲原始xml。如果您將類型定義爲「Apple Web Archive pasteboard type」,則郵件應用程序將實際將該粘貼格式設置爲html。

如果你想知道web檔案的樣子。在桌面Safari上,只需將網頁保存爲一個存檔,然後在文本閱讀器中查看該文件(文本編輯將嘗試解析該文件,因此您可以使用其他程序查看存檔XML)。

請閱讀所有文檔,因爲您可以發現您可以在發送給我的鏈接中執行自定義類型。

+0

問題在於(在iPhone上不是桌面) - 正如我在最初的問題中所寫的那樣 - 當我將類型設置爲(例如)「Apple Web Archive pasteboard type」時,電子郵件中沒有任何內容粘貼。我還發現了UTI的擴展 - 但我無法得到它的工作,也沒有在網上找到一個例子。我發現的所有(這也是這裏的第一個答案)是「僅在iPhone上...可用」。 – ManniAT 2010-08-03 09:50:12

+0

啊,順便說一下(我忘記了)謝謝你的努力。如果你可以提供一個鏈接到一些工作樣本,這將是很好的。 – ManniAT 2010-08-03 09:52:18

+0

我的解決方案是iPhone/iPad。我會看看我是否可以開始創建一個示例。您遇到的問題是,與Apple Web Arc ....類型相關聯的字符串不能是簡單的字符串。這是一個相當複雜的過程。您需要創建一個XML文檔/字符串,並且其中的實際html內容是base64編碼的。隨意至少接受否定的投票:)我應該給你一個最初的詳細答案,對於短缺抱歉。 – maxpower 2010-08-03 19:20:57

1

我有HTML複製工作,所以它正確粘貼到內置的郵件和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>