0

緊急通報アプリがあります。ユーザーが連絡先を押すと、電話がかかります。その後、ユーザーはアプリに戻って自動 SMS を送信する必要があります。ただし、連絡先を押すと、ユーザーがメッセージフレームワークに移動し、送信が押されると、その人に電話がかかるようにしたいと思います。ここまでのコードです。

- (NSString *)deviceLocation {
    return [NSString stringWithFormat:@"Hi, you have been contacted as there has been an emergancy. Here is the location of the caller: Latitude: %f Longitude: %f . Please call for help to that location. From Kiddy Call the iPhone app. ", locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude];

}



#pragma mark - PictureListMainTableCellDelegate methods
-(void)pictureListMainTableCell:(PictureListMainTableCell *)cell wantsToCallNumber:(NSString *)number
{
    if([MFMessageComposeViewController canSendText])
    {
        MFMessageComposeViewController *messageComposer =
        [[MFMessageComposeViewController alloc] init];
        NSString *message = (@"%@", [self deviceLocation]);
        [messageComposer setBody:message];
        messageComposer.recipients = [NSArray arrayWithObjects:number  , nil];
        messageComposer.messageComposeDelegate = self;
        [self presentViewController:messageComposer animated:YES completion:nil];

        NSLog(@"Texting telephone number [%@]", messageComposer);
    }
    NSString *urlString = [NSString stringWithFormat:@"tel://%@", number];
    NSLog(@"calling telephone number [%@]", number);
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
    NSLog(@"%@", [self deviceLocation]);
}

これに対する解決策は大歓迎です。

4

1 に答える 1

3

あなたはやっている:

messageComposer.messageComposeDelegate = self;

定義するだけです:

messageComposeViewController:didFinishWithResult

誰かがテキストの編集を終了したときに呼び出され、2 番目のパラメーターから結果を取得できます。

MessageComposeResultCancelled,
MessageComposeResultSent,
MessageComposeResultFailed

そして、このコールバックから電話をかけることができます。

電話をかけるには:

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:@"123123123"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

またはプロンプトなしで呼び出す場合は tel:// 。

于 2013-09-11T15:51:33.370 に答える