Как мне позвонить из приложения или запустить приложение сразу же после завершения вызова? Я знаю, что это возможно, потому что некоторые приложения в магазине приложений уже делают это.iPhone SDK: запуск приложения после завершения вызова
ответ
Я получил этот код с сайта Apple, и он прекрасно работает:
-(IBAction) dialNumber:(id)sender{
NSString *aPhoneNo = [@"tel://" stringByAppendingString:[itsPhoneNoArray objectAtIndex:[sender tag]]] ; NSURL *url= [NSURL URLWithString:aPhoneNo];
NSURL *url= [NSURL URLWithString:aPhoneNo];
NSString *osVersion = [[UIDevice currentDevice] systemVersion];
if ([osVersion floatValue] >= 3.1) {
UIWebView *webview = [[UIWebView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
[webview loadRequest:[NSURLRequest requestWithURL:url]];
webview.hidden = YES;
// Assume we are in a view controller and have access to self.view
[self.view addSubview:webview];
[webview release];
} else {
// On 3.0 and below, dial as usual
[[UIApplication sharedApplication] openURL: url];
}
}
Если вы хотите позвонить из своего приложения, вы можете использовать URL-адрес tel:
.
Вот метод, который принимает номер телефона в виде строки и инициирует вызов.
- (void)dialNumber: (NSString*)telNumber
{
// fix telNumber NSString
NSArray* telComponents = [telNumber componentsSeparatedByCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
telNumber = [telComponents componentsJoinedByString: @""];
NSString* urlString = [NSString stringWithFormat: @"tel:%@", telNumber];
NSURL* telURL = [NSURL URLWithString: urlString];
//NSLog(@"Attempting to dial %@ with urlString: %@ and URL: %@", telNumber, urlString, telURL);
if ([[UIApplication sharedApplication] canOpenURL: telURL])
{
[[UIApplication sharedApplication] openURL: telURL];
}
else
{
UIAlertView* alert = [[UIAlertView alloc] initWithTitle: NSLocalizedString(@"Dialer Error", @"")
message: [NSString stringWithFormat: NSLocalizedString(@"There was a problem dialing %@.", @""), telNumber]
delegate: nil
cancelButtonTitle: NSLocalizedString(@"OK", @"")
otherButtonTitles: nil];
[alert show];
[alert release];
}
}
Я думаю, что есть две части этой
- Программа уже работает, и пользователь получает приглашение, указывающее на телефонный звонок приходит в, и попросил принять или отклонить
- пользователь получает телефонный звонок, но приложение не работает
В первом случае ваш UIApplicationDelegate будет получать сообщения application:willChangeStatusBarFrame:
, application:didChangeStatusBarFrame:
, applicationWillResignActive:
и applicationDidBecomeActive:
все потенциально несколько раз в зависимости от того, выбирает ли пользователь ответ на вызов или нет, и, возможно, applicationWillTerminate:
, если они захотят оставить заявку или нет. Вы также можете наблюдать за этими событиями, используя NSNotificationCenter из класса, который не зарегистрирован в качестве делегата приложения, подробности см. В разделе «Уведомления» в описании класса UIApplication.
Во втором случае я не знаю, что с официальным SDK вы можете запустить приложение, когда телефонный звонок заканчивается. Не могли бы вы предоставить список приложений, которые это делают?
EDIT:
Я думаю, я понимаю, что вы имеете в виду прямо сейчас. Вы должны следовать совету @jessecurry, openURL
на UIApplication
с протоколом tel:
позвонит. Что касается их претензий на «делать невозможное» и не покидать приложение, когда был сделан телефонный звонок, я не уверен, как они это сделали, потому что я его не писал. Они могут использовать внешний сервис VOIP, например Skype, или просто загружать URL-адрес tel:
в невидимый веб-лист. Ни один из которых я не могу прокомментировать, потому что я не пробовал.
Вот несколько приложений которые делают это 1. Baby Monitor & Alarm (http://www.isarson.com/ru/baby-monitor-alarm-iphone). Один из последних твитов - «Baby Monitor & Alarm» теперь с неограниченным количеством аварийных сигналов. Да, мы сделали невозможное, наше приложение не вышло, когда телефонный звонок выполняется! - 4 недели 22 часа назад » 2. Сигнал вызова Wakeup Call – Mithin
Помните, что с 3.x +, если вы используете 'openURL', пользователи получат подсказку. В 2.x он просто набирает – slf
Это делается с помощью telprompt вместо тел. пожалуйста, ознакомьтесь со следующим кодом:
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @ "telprompt: 18004912200"]];
- 1. Запуск приложения после завершения установки
- 2. Запуск функции после завершения вызова Ajax
- 3. Запуск приложения в iPhone после получения вызова от определенного номера
- 4. Перехват вызова iPhone sdk
- 5. Активность вызова после завершения вызова
- 6. Запуск функции после завершения анимации
- 7. iPhone. Открыть приложение после вызова
- 8. после завершения вызова, перезапустите предыдущее приложение в iphone
- 9. Запуск функции после завершения вызова ajax Загрузка изображений в Laravel
- 10. Функция вызова Hammer.js после завершения события завершения
- 11. Запуск процедуры после завершения репликации
- 12. Запуск приложения iphone в утилите store itunes
- 13. dispatch_group_notify после второго вызова завершения
- 14. Функция вызова после завершения намерения
- 15. Завершение вызова после завершения загрузки
- 16. Функция вызова после завершения анимации
- 17. Запуск приложения после завершения установки, с включенным UAC
- 18. Android: автоматический запуск приложения и выход после завершения в onCreate()
- 19. WPF-Запуск метода после завершения конструктора MainWindow
- 20. Запуск кода после завершения анимации AngularJS
- 21. IPHONE SDK: NSURLConnection асинхронный/ждать завершения ошибка?
- 22. запуск двух приложений в iphone sdk?
- 23. Запуск приложения диалогового окна iPhone во время входящего голосового вызова
- 24. Запуск задачи gulp после завершения другой задачи
- 25. Запуск приложения на iPhone, разработанный в XCODE
- 26. Как запустить фоновый поток после завершения приложения в iphone?
- 27. Поверхность выглядит пустой после завершения() вызова
- 28. Замораживание приложения внутри обратного вызова завершения Ion
- 29. Выберите музыку из приложения iPhone? - iPhone SDK
- 30. Запуск приложения при включении iPhone?
Используйте веб-просмотр, чтобы позвонить. Его правильно объяснили в этом вопросе: http://stackoverflow.com/questions/5317783/return-to-app-behavior-after-phone-call-different-in-native-code-than-uiwebview –