#ios #iphone #nsurl
#iOS #iPhone #nsurl
Вопрос:
В настоящее время я пытаюсь создать приложение быстрого набора для различных номеров, которые может ввести пользователь. Я загружаю телефон вот так после нажатия UITableViewCell
- (IBAction)Dialer:(id)sender{
NSURL *url = [ [ NSURL alloc ] initWithString: @"tel:09-410-7078" ];
[[UIApplication sharedApplication] openURL:url];
}
это загружает программу дозвона телефона и набирает номер.. Я задаюсь вопросом, возможно ли после завершения телефонного звонка загрузить приложение с того места, откуда оно вышло для телефонного звонка .. или если есть лучший способ сделать то, что я пытаюсь сделать?
Ответ №1:
На самом деле вы должны иметь в виду, что приложение может быть выгружено в любой момент. Но когда ваше приложение выгружается, ваш делегат приложения получает некоторые сообщения (applicationWillTerminate, applicationWillResignActive, applicationDidEnterBackground). Вы должны прочитать этот пост. В этих методах вы должны сохранить некоторые параметры вашего приложения (текущую страницу, настройки и т.д.) И использовать их при запуске вашего приложения или при повторном запуске.
Если вы хотите запустить свое приложение вручную, вам не следует этого делать. Пользователь будет удивлен таким поведением.
Комментарии:
1. хорошо, спасибо за ссылку. сейчас мы его прочитаем. Что касается вашей последней строки, я не хочу запускать ее вручную, я хочу вернуть их обратно в свое приложение после телефонного звонка, сделанного нажатием tableviewcell, который запускает телефонный звонок из моего приложения.
2. Насколько я знаю, у вас нет законной возможности вернуться к своему приложению. Вы не должны этого делать.
Ответ №2:
Я очень долго искал и получил этот код с сайта Apple, и он отлично работает:
-(IBAction) dialNumber:(id)sender{
NSString *aPhoneNo = [@"tel://" stringByAppendingString:[itsPhoneNoArray objectAtIndex:[sender tag]]] ; 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];
}
}
Ответ №3:
Начиная с iOS 5.0, мы возвращаемся к приложению после завершения вызова. Найдите приведенный ниже код.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt:18004912200"]];