Iphone 应用内短信,预写正文限制为40个字符
我正在使用MFMessageComposeViewController在应用程序中发送消息 问题:Iphone 应用内短信,预写正文限制为40个字符,iphone,cocoa-touch,ios4,mfmailcomposeviewcontroller,Iphone,Cocoa Touch,Ios4,Mfmailcomposeviewcontroller,我正在使用MFMessageComposeViewController在应用程序中发送消息 问题: MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; if([MFMessageComposeViewController canSendText]) { controller.body = @"This is a sample body which is
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];
当我向非iPhone手机(如Nexus One)发送短信时,短信总是被分成两条或更多条短信
但是,如果我直接从本机消息应用程序发送相同的消息,则消息将在单个消息中传递
然后我最近发现了这一点,实际上正在发生的是消息正文被40个字符分割,我无法理解这种情况
有什么不对劲吗?这有什么办法吗
代码:
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];
从未尝试过,但可能有三种解决方法 1) 尝试使用
[nsstringwithformat:@“%@”,myMsgBody]代码>我认为它不起作用/很可能无法解决问题:P
2) 查看是否可以通过以下方式发送NSUTF8StringEncoding
3) 或者问题出在承运人方面,与您的代码无关
说明:在您的场景中,我看到文本被分解为多个文本。运营商网站的服务器认为您的邮件太长。这意味着太重了,不能马上发送。这基本上意味着它比服务器的容量要多出xxmb。为了减小这个尺寸,我给了你一个编码方式的想法 如果消息正文仅包含一个非ASCII字符,则MFMessageComposeViewController将字符数乘以4。因此,当消息正文达到40个字符时,MFMessageComposeViewController将其计数为160。由于一条移动消息的长度为160,因此它将消息分成多个部分(40个字符加上非ascii字符后,它类似于160个ascii字符,因此网络提供商也将对多条消息收费)。所以,如果您从其他地方复制并粘贴消息正文,请确保它们不包含非ASCII字符。这就是发生在我身上的事