【发布时间】:2011-06-19 07:27:16
【问题描述】:
这可能吗?
应用程序将有一个按钮和一个文本字段或文本视图。
用户在文本字段或文本视图中输入电话号码。当用户完成后,用户按下将在 iPhone 中打开消息或 SMS 应用程序的按钮。
我该怎么做?如果可能,请提供一些代码! :)
提前谢谢你!
【问题讨论】:
标签: iphone objective-c sms message
这可能吗?
应用程序将有一个按钮和一个文本字段或文本视图。
用户在文本字段或文本视图中输入电话号码。当用户完成后,用户按下将在 iPhone 中打开消息或 SMS 应用程序的按钮。
我该怎么做?如果可能,请提供一些代码! :)
提前谢谢你!
【问题讨论】:
标签: iphone objective-c sms message
在 Swift 3.0 中
static func sendMessageToNumber(number:String,message:String){
let sms = "sms:\(number)&body=\(message)"
let url = URL(string:sms)!
let shared = UIApplication.shared
if(shared.canOpenURL(url)){
shared.openURL(url)
}else{
print("unable to send message")
}
}
【讨论】:
另一种简短的方法,可以更好地帮助任何人:)
NSString *sms = @"sms:+1234567890&body=This is sms body.";
NSString *url = [sms stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
【讨论】:
看看MessageComposer Sample App 和MFMessageComposeViewController Class。
然后您可以执行类似的操作,不过您应该首先检查您的设备上是否确实可以使用 MFMessageComposeViewController(请参阅 MessageComposer 示例):
MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
picker.messageComposeDelegate = self;
picker.recipients = [NSArray arrayWithObjects:@"1234", @"2345", nil];
picker.body = yourTextField.text
[self presentModalViewController:picker animated:YES];
[picker release];
您需要先导入MessageUI.framework (see this answer)。
通过#import <MessageUI/MessageUI.h> 将其导入您的类,并在.h 文件中添加<MFMessageComposeViewControllerDelegate>,例如像这样:
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
@interface YourClass : UIViewController <MFMessageComposeViewControllerDelegate>
{
// ...
【讨论】: