1

今のところ、クリックするボタンだけを持つ基本的なアプリを作成しました。これにより、SMS コンポーザー (ios7 および xcode 5) が表示されます。私はすべてをうまく処理したと思います。シミュレーターはメッセージの送信をサポートしていないため、電話で試してみましたが、実際にはメッセージが送信されません。送信ボタンとキャンセル ボタンは問題なくクリックできますが、メッセージは送信されません。何か案は?これが私のコードです:

- (IBAction)text:(UIButton *)sender {
    MFMessageComposeViewController *messageVC = [[MFMessageComposeViewController alloc] init];
    [messageVC setMessageComposeDelegate:self];
    if ([MFMessageComposeViewController canSendText]) {

        NSString *smsString = [NSString stringWithFormat:@"message to send"];
        messageVC.body = smsString;
        messageVC.recipients = @[@"number to send to..."];
        messageVC.messageComposeDelegate = self;
        [self presentViewController:messageVC animated:YES completion:nil];
    }
}

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
    switch (result) {
        case MessageComposeResultCancelled:
            NSLog(@"Message was cancelled");
            [self dismissViewControllerAnimated:YES completion:NULL];             break;
        case MessageComposeResultFailed:
            NSLog(@"Message failed");
            [self dismissViewControllerAnimated:YES completion:NULL];             break;
        case MessageComposeResultSent:
            NSLog(@"Message was sent");
            [self dismissViewControllerAnimated:YES completion:NULL];             break;
        default:             
            break;     
    } 
}

編集:今朝試してみたところ(一晩何もしませんでした)、うまくいきました。問題が何であったかわかりません。でもありがとう!

4

2 に答える 2

0

MessageComposeデリゲートでこれを試してください:

  • (void)messageComposeViewController:(MFMessageComposeViewController *)コントローラー didFinishWithResult:(MessageComposeResult)結果

{

スイッチ (結果) {

    case MessageComposeResultCancelled:
        NSLog(@"Message was cancelled");
         break;
    case MessageComposeResultFailed:
        NSLog(@"Message failed");
          break;
    case MessageComposeResultSent:
        NSLog(@"Message was sent");
         break;
    default:             
        break;     
} 

[コントローラーdismissViewControllerAnimated:YES完了:nil];

}

于 2014-07-04T07:46:20.017 に答える
0

messageVC.recipients は正しい形式 (数値の配列) であると思いますか?

試す:

//check if the device can send text messages
if(![MFMessageComposeViewController canSendText]) {
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device cannot send text messages" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    return;
}

//set receipients
NSArray *recipients = [NSArray arrayWithObjects:@"0912345679",@"0923456790",@"0934567901", nil];

//set message text
NSString * message = @"this is a test sms message.";

MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;
[messageController setRecipients:recipients];
[messageController setBody:message];

// Present message view controller on screen
[self presentViewController:messageController animated:YES completion:nil];
于 2014-07-04T03:30:51.857 に答える