2017-02-15 9 views
1

Я новичок в разработке iOS. Я создал меню Tableview который выглядит примерно так:Как открывать приложения, такие как телефонный дозвон, при нажатии на ячейку cellview ios объектив c

enter image description here

Теперь я хочу, чтобы открыть номеронабиратель, обмена сообщениями и электронной почты приложение на мобильный кран. Как это сделать?

я был что-то вроде этого (НЕ РАБОТАЕТ !!!):

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    if(self.tableView.indexPathForSelectedRow.row == 0){ 
     NSLog(@"Call selected!!"); 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tell://1234"] options:@{} completionHandler:nil]; 
    } 
    else if (self.tableView.indexPathForSelectedRow.row == 1){ 
     NSLog(@"Text Selected!!"); 
    } 
    else{ 
     NSLog(@"Email Selected!!"); 
    } 
} 

Любая помощь будет оценена.

Примечание: Я строю на iOS 10.2, поэтому методы, такие как openURL, обесцениваются.

Благодаря

+0

Что не работает? is 'tableView: didSelectRowAtIndexPath:' called? Почему вы используете 'self.tableView.indexPathForSelectedRow.row', когда у вас есть параметр' indexPath' в параметре? 'tell: //' vs 'tel: //'? Пробовал ли вы сначала вызвать 'canOpenURL:'? – Larme

ответ

1

Вы можете инициировать вызов

[https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html][1]

не является tell://1234

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tell://1234"] options:@{} completionHandler:nil]; 

это tel:1234

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:1234"] options:@{} completionHandler:nil]; 

или использовать

telprompt дает пользователю возможность поместить вызов или отменить вызов до набора номера телефона. Две косые черты после двоеточия являются необязательными.

для например

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://1234"] options:@{} completionHandler:nil]; 

не забудьте добавить LSApplicationQueriesSchemes в вашем .plist

<key>LSApplicationQueriesSchemes</key> 
<array> 
<string>tel</string> 
<string>telprompt</string> 
</array> 

для получения дополнительной информации вы можете получить ссылку на tutorial

+0

Вы можете удалить '//', просто 'tel: 1234' будет работать. Это хорошо документируется в документации Apple. [Телефонная ссылка] (https://developer.apple.com/library/content/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html). – rckoenes