2013-04-15 91 views
0

我有一個UIWebView,其中我示出從陣列的某些對象(在這種情況下,電子郵件消息體)。我用下面的代碼這樣做:如何在UIWebView中允許HTML渲染?

NSString *string = [messages objectAtIndex:count-row-1]; 
NSString *string2 = [string stringByReplacingOccurrencesOfString:@"\n" withString:@"<br/>"]; 


[self.webView loadHTMLString:string2 baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]]; 

這段代碼的問題,目前的一個我用的是,當消息體有一定的富文本或HTML很多圖片,格式等。它不會正確顯示消息。

當我說'它不能正確顯示消息'時,我的意思是上述所有格式都被忽略,並且圖像中的純文本被拉出並顯示出來。

這裏是我如何加載郵件正文插入messages數組:

for (CTCoreMessage *msg in messageSet) { 
       [messages addObject:[msg bodyPreferringPlainText:&isHTML]]; 

isHTMLBOOL設置爲NO,我不知道這可能是一個問題嗎?

我已經試過將isHTMLBOOL設置爲YES,好吧,它修復了一半的問題。現在,一些(大部分)的格式顯示(CSS /圖片/富文本),但不幸的是在一些消息中,我得到的標籤這樣的,在任何地方的中間:

style="margin-bottom: 15px; width: 570px; text-align: left; margin-left: auto; margin-right: auto;" 

我是什麼做錯了?

+0

你說的意思是「不正確顯示的消息?」 –

+0

我試圖發佈圖片,但沒有足夠的聲望。基本上,它忽略了所有格式/圖像/ CSS,並只顯示消息中的文本。 –

+1

什麼是'messages'?純文本? HTML?發佈一條不起作用的消息的示例代碼! –

回答

1

考慮在CTCoreMessage而不是bodyPreferringPlainText:上的htmlBody方法,該方法在可能的情況下優選純文本。如果您故意拉取郵件正文的純文本版本,則永遠不會看到格式。

+0

好吧,但不會bodyPreferringPlainText:返回相同的,如果它被設置爲YES? –

+0

編號閱讀[方法文檔](http://libmailcore.com/api/Classes/CTCoreMessage.html#//api/name/bodyPreferringPlainText :)以及關於「輸出參數」。 –

+0

好吧,我想我現在明白了。因此,不要將bodyPreferringPlainText添加到數組中,請將msg.htmlBody添加到數組中。它是否正確? –