Я думаю, что есть две части к этому
- Приложение уже запущено, и пользователь получает подсказку, указывающую на входящий телефонный звонок, и просит принять или отклонить
- Пользователь получает телефонный звонок, но приложение не запущено
В первом случае ваш UIApplicationDelegate будет получать сообщения application:willChangeStatusBarFrame:
, application:didChangeStatusBarFrame:
, applicationWillResignActive:
и applicationDidBecomeActive:
, потенциально все несколько раз в зависимости от того, решит ли пользователь ответить на вызов или нет, и, возможно, applicationWillTerminate:
, если они решат оставить вашу заявку или нет. Вы также можете наблюдать эти события, используя NSNotificationCenter из класса, который не зарегистрирован в качестве делегата приложения, см. Подробности в разделе «Уведомления» справочника по классу UIApplication .
Во втором случае, я не знаю, нет ли официального SDK для запуска вашего приложения после завершения телефонного звонка. Не могли бы вы предоставить список приложений, которые делают это?
EDIT:
Мне кажется, я понимаю, что вы имеете в виду сейчас. Вы должны следовать совету @jessecurry, openURL
на UIApplication
с протоколом tel:
сделает телефонный звонок. Что касается их заявления «делать невозможное» и не выходить из приложения, когда сделан телефонный звонок, я не уверен, как они это сделали, потому что я его не написал. Они могут использовать внешнюю службу VOIP, такую как Skype, или просто загрузить URL tel:
внутри невидимой веб-страницы. Ни один из которых я не могу комментировать, потому что я не пробовал это.