0

我面临一个向多个联系人发送消息的问题:

301 up contacts :消息应用程序未打开,如果我们多次单击邀请,则 iMessage 正在打开,但加载消息需要更多时间(2 分钟)

351 up contacts :消息打开时显示黑色的新消息屏幕,然后返回我们的应用程序而不打开消息屏幕。

这是我的代码:联系人是电话号码数组

NSMutableArray *contacts = [NSMutableArray array];

for (User *user in users) {
    if (user.phone.length) {
        NSString *strphonenumber = [NSString stringWithFormat:@"%@",user.phone];
        [contacts addObject:strphonenumber];
    }
} 

MFMessageComposeViewController  *messanger = [[MFMessageComposeViewController alloc]init];
    messanger.messageComposeDelegate = self;
    messanger.recipients = contacts;
    messanger.body = [NSString stringWithFormat:@“body”;

    [self presentViewController:messanger animated:YES completion:NULL];

我收到此错误:

<CKSMSComposeRemoteViewController: 0x12802f810> timed out waiting for fence barrier from com.apple.mobilesms.compose
4

4 回答 4

0

只需使用此方法:

- (IBAction)sendSMS:(id)sender {

   MFMessageComposeViewController *controller =  
   [[MFMessageComposeViewController alloc] init] autorelease];
   if([MFMessageComposeViewController canSendText]){
        controller.body = @"Hello";
        controller.recipients = [NSArray arrayWithObjects:@"12345678",@"87654321", nil];
        controller.messageComposeDelegate = self;
        [self presentViewController:controller animated:YES completion:nil];
    }
}

回调方法:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
     switch (result) {
       case MessageComposeResultCancelled:
             NSLog(@"Cancelled");
             break;
        case MessageComposeResultFailed:
             NSLog(@"Error occured");
             break;
        case MessageComposeResultSent:
             break;
        default:
             break;
     }
    [self dismissViewControllerAnimated:YES completion:nil];
}
于 2015-11-27T13:21:48.517 回答
0

这对我有用:

将委托设置为接口:

@interface ViewController <MFMessageComposeViewControllerDelegate>{}

检查设备是否能够发送消息

if([MFMessageComposeViewController canSendText] ){
  //device is possible to send messages
}else{
  //device can't send messages
}

准备消息:

MFMessageComposeViewController* comp = [[MFMessageComposeViewController alloc] init];

 //set properties
 comp.body = @"body";
 comp.recipients = [NSArray arrayWithObjects:phone1, phone2, nil];
 comp.messageComposeDelegate = self;

打开对话框:

[self presentViewController:comp animated:YES completion:nil];

确定结果

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result{
    //test result
    switch (result) {
        case MessageComposeResultCancelled:
            [self makeAlert:@"Result canceled"];
            break;
        //message was sent
        case MessageComposeResultSent:
            [self makeAlert:@"Result sent"];
            break;
        case MessageComposeResultFailed:
            [self makeAlert:@"Result Failed"];
            break;
        default:
            break;
    }

    //dismiss view
    [self dismissViewControllerAnimated:YES completion:nil];
}
于 2015-08-12T08:17:16.663 回答
0

尝试这个...

NSString *strContacts = [NSString stringWithFormat:@"%@",add multipal contacts];

MFMessageComposeViewController *message = [[MFMessageComposeViewController new];
message.recipients  = @[strContacts];
于 2015-08-12T07:55:29.357 回答
0

我有同样的问题然后想通了

messanger.recipients= // 应该始终是一个字符串数组。

确保您发送的电话号码messanger.recipientsNSString.

于 2015-08-12T07:57:50.177 回答