如何在iphone中发送应用程序内短信

M作为信使应用程序工作。 我想自动发送短信在我的客户端作为validation码,用户可以使用该代码作为validation码..任何人可以帮助我如何发送短信自动在我的客户端

防爆。

如果用户点击注册,他/她将从iphone客户端自动获取构造信息。 那我需要实现..

谢谢

这是关于编码/解码问题的扩展:

#import <Foundation/Foundation.h> @interface Base64 : NSObject { } + (void) initialize; + (NSString*) encode:(const uint8_t*) input length:(NSInteger) length; + (NSString*) encode:(NSData*) rawBytes; + (NSData*) decode:(const char*) string length:(NSInteger) inputLength; + (NSData*) decode:(NSString*) string; @end #import "Base64.h" @implementation Base64 #define ArrayLength(x) (sizeof(x)/sizeof(*(x))) static char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; static char decodingTable[128]; + (void) initialize { if (self == [Base64 class]) { memset(decodingTable, 0, ArrayLength(decodingTable)); for (NSInteger i = 0; i < ArrayLength(encodingTable); i++) { decodingTable[encodingTable[i]] = i; } } } + (NSString*) encode:(const uint8_t*) input length:(NSInteger) length { NSMutableData* data = [NSMutableData dataWithLength:((length + 2) / 3) * 4]; uint8_t* output = (uint8_t*)data.mutableBytes; for (NSInteger i = 0; i < length; i += 3) { NSInteger value = 0; for (NSInteger j = i; j < (i + 3); j++) { value <<= 8; if (j < length) { value |= (0xFF & input[j]); } } NSInteger index = (i / 3) * 4; output[index + 0] = encodingTable[(value >> 18) & 0x3F]; output[index + 1] = encodingTable[(value >> 12) & 0x3F]; output[index + 2] = (i + 1) < length ? encodingTable[(value >> 6) & 0x3F] : '='; output[index + 3] = (i + 2) < length ? encodingTable[(value >> 0) & 0x3F] : '='; } return [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease]; } + (NSString*) encode:(NSData*) rawBytes { return [self encode:(const uint8_t*) rawBytes.bytes length:rawBytes.length]; } + (NSData*) decode:(const char*) string length:(NSInteger) inputLength { if ((string == NULL) || (inputLength % 4 != 0)) { return nil; } while (inputLength > 0 && string[inputLength - 1] == '=') { inputLength--; } NSInteger outputLength = inputLength * 3 / 4; NSMutableData* data = [NSMutableData dataWithLength:outputLength]; uint8_t* output = data.mutableBytes; NSInteger inputPoint = 0; NSInteger outputPoint = 0; while (inputPoint < inputLength) { char i0 = string[inputPoint++]; char i1 = string[inputPoint++]; char i2 = inputPoint < inputLength ? string[inputPoint++] : 'A'; /* 'A' will decode to \0 */ char i3 = inputPoint < inputLength ? string[inputPoint++] : 'A'; output[outputPoint++] = (decodingTable[i0] << 2) | (decodingTable[i1] >> 4); if (outputPoint < outputLength) { output[outputPoint++] = ((decodingTable[i1] & 0xf) << 4) | (decodingTable[i2] >> 2); } if (outputPoint < outputLength) { output[outputPoint++] = ((decodingTable[i2] & 0x3) << 6) | decodingTable[i3]; } } return data; } + (NSData*) decode:(NSString*) string { return [self decode:[string cStringUsingEncoding:NSASCIIStringEncoding] length:string.length]; } @end 

希望这会帮助你。

您不能从iOS自动发送短信,您可以向用户显示短信视图并预填充短信主体。

你会发现更多关于如何使用MFMessageComposeViewController在这里: http : //developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMessageComposeViewController_class/Reference/Reference.html

 - (void) sendSMSCode:(NSString *)smsCode { MFMessageComposeViewController *viewController = [[MFMessageComposeViewController alloc] init]; viewController.messageComposeDelegate = self; [viewController setBody:smsCode]; // Replace with the number to send the SMS so [viewController setRecipients:[NSArray arrayWithObject:@"+123456789"]]; [self presentModalViewController:viewController animated:YES]; [viewController release], viewController = nil; } #pragma mark - MFMessageComposeViewController methods - (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { [controller dismissModalViewControllerAnimated:YES]; if (result == MessageComposeResultFailed) { // handle the error. } } 

发送应用内短信与应用内电子邮件非常相似,但有一些小的差异。 使用MessageUI框架发送应用程序内SMS。

 -(IBAction) sendInAppSMS:(id) sender { MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease]; if([MFMessageComposeViewController canSendText]) { controller.body = @"Hello from Mugunth"; controller.recipients = [NSArray arrayWithObjects:@"12345678", @"87654321", nil]; controller.messageComposeDelegate = self; [self presentModalViewController:controller animated:YES]; } }