通过IBAction直接发送短信(Objective-C)

时间:2015-05-31 16:36:35

标签: ios objective-c mfmessagecomposeview

如何通过IBAction直接发送短信(使用MFMessageComposeViewController)?例如,当按下按钮时,将发送带有预设号码的文本消息,并且不会显示任何键盘或任何内容。只是一个警告说"短信已成功发送,"例如。

所有编码都已完成,除此之外"直接发送功能"。

1 个答案:

答案 0 :(得分:4)

嗯,你不能在技术上"自动发送"消息,因为它需要用户确认才能通过。

但是,您可以使用MFMessageComposeViewController(非常满口)设置消息的内容和收件人,并显示一个对话框,需要额外一次点击才能发送。

要访问该对话框,您必须$results = DB::select('SELECT * FROM database01.table1 t1, database02.table2 t2 WHERE t1.id1=t2.id2');并将#import <MessageUI/MessageUI.h>添加到头文件中的视图控制器声明中。

然后,您可以编写MFMessageComposeViewControllerDelegate。首先,您要检查设备是否可以使用canSendText实际发送包含文本内容的邮件。然后,您将创建视图控制器,使用数据填充它,并显示对话框。

IBAction

最后一件事:你必须实现一个委托方法,告诉消息视图控制器在用户按下&#34;取消&#34;在发送对话框中:

- (IBAction)sendMessage:(UIButton *)sender {
    if([MFMessageComposeViewController canSendText]) {
        MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init]; // Create message VC
        messageController.messageComposeDelegate = self; // Set delegate to current instance

        NSMutableArray *recipients = [[NSMutableArray alloc] init]; // Create an array to hold the recipients
        [recipients addObject:@"555-555-5555"]; // Append example phone number to array
        messageController.recipients = recipients; // Set the recipients of the message to the created array

        messageController.body = @"Example message"; // Set initial text to example message

        dispatch_async(dispatch_get_main_queue(), ^{ // Present VC when possible
            [self presentViewController:messageController animated:YES completion:NULL];
        });
    }
}