#iphone #ios
#iPhone #iOS
Вопрос:
Я хочу показать всплывающее окно, в котором спрашивается, хочет ли пользователь позвонить по номеру, когда пользователь нажимает на номер.
Как мне это сделать? В настоящее время, когда я нажимаю на номер, он вызывает его автоматически.
Ответ №1:
Вы также можете сделать:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:0123456789"]];
чтобы получить приглашение и вернуться к вашему приложению впоследствии.
Ответ №2:
Создайте UIAlertView с делегатом, установленным в self , и если выбранный buttonindex является buttonIndex кнопки «Да» в оповещении, наберите номер, если нет, не набирайте номер.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Do you want to call..." delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes", nil];
[alert setTag:02];
[alert show];
[alert release];
- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (alertView.tag == 02 amp;amp; buttonIndex != alertView.cancelButtonIndex) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://phonenumber"]];
}
}
Комментарии:
1. метод setTag действительно не нужен, если вы не используете несколько UIAlertViews, и я бы изменил сообщение, чтобы оно было просто номером телефона, как это делает Apple, когда вы нажимаете номер телефона в UIWebView и используете Cancel и Call для названий кнопок.
2. Это зависит от разработчика, а не от вас.
Ответ №3:
Я думаю, что вы ищете что-то вроде того, что UIWebView автоматически выполняет с телефонными номерами. Появится UIAlertView с запросом, хочет ли пользователь позвонить по этому номеру, прежде чем завершить набор. Для этого сделайте свой класс UIAlertViewDelegate и выполните следующие действия:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: nil
message: phonenum
delegate: self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Call",nil];
[alert show];
[alert release];
Кроме того, добавьте следующий метод в тот же класс:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat: @"tel://%@", phoneNum]]];
}
}
Просмотр оповещений будет возвращаться к этому методу, когда пользователь взаимодействует с ним. buttonIndex == 0 гарантирует, что вы набираете номер только тогда, когда пользователь нажимает кнопку вызова.
Комментарии:
1. Кнопка «Позвонить» здесь появилась как buttonIndex == 1, «Отмена» получила 0. (И строки должны быть локализованы 🙂 Спасибо за это!
Ответ №4:
Вы должны использовать метод UIAlertView. Документация предоставлена по этой ссылке . Я бы посоветовал вам взглянуть на эту документацию, и все говорит само за себя.
Но вам может потребоваться что-то вроде этого.
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Really call?" message:@"Do you want to call this number?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil] autorelease];
// optional - add more buttons:
[alert addButtonWithTitle:@"Yes"];
[alert show];