2011-02-27 21 views
0

我正在使用MFMessageComposeViewController在應用程序內發送消息。帶有預寫體的應用內短信限制爲40個字符

問題:

當我發送文本消息到非iPhone(例如Nexus之一),該消息被總是分裂成兩個或更多個文本消息。

但是,如果我直接從本地消息應用程序發送相同的消息,則消息將在單個消息中傳遞。

然後我最近才發現這個,其實發生的是消息體被40個字符分裂,我無法弄清楚情況。

什麼可能是錯的?有沒有解決這個問題的方法?

CODE:

MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
if([MFMessageComposeViewController canSendText]) 
{ 

    controller.body = @"This is a sample body which is containing more than 40 characters..."; 
    controller.recipients = phnNumbersArray; 
    controller.messageComposeDelegate = self; 
    [self.view presentModalViewController:controller animated:YES]; 
} 
[controller release]; 
+0

如果郵件正文包含甚至只有一個非ASCII字符,然後MFMessageComposeViewController統計字符數乘以4。 的數量因此當消息體達到40個字符MFMessageComposeViewController將其計數爲160.由於一個移動消息長度爲160,因此它將消息分成若干部分(在非ASCII字符後面的40個字符中,它就像160個ASCII字符,因此它也會由網絡提供商爲多條消息收費)。 因此,如果您從其他地方複製並粘貼郵件正文,請確保它們不包含非ASCII字符。這就是發生在我身上的事情。 :) – 2013-10-10 08:48:24

回答

0

沒試過,但可以在三個辦法解決這個。

1)嘗試使用[NSString stringWithFormat:@"%@", myMsgBody];我認爲這不會奏效/最有可能解決問題。 :P

2)看看你能否發送NSUTF8StringEncoding的方式。

3)或者問題出在運營商方面,與您的代碼無關。

說明:在您的方案中,我看到文本分解爲多個文本。運營商網站上的服務器認爲您的消息太長。這意味着太重,無法立即發送。這基本上意味着它是xxmb多於服務器所需的。爲了減少大小我給你的編碼方式的想法...

相關問題