2011-01-03 14 views
11

Potrzebuję wywoływać programowo w mojej aplikacji za pomocą kliknięcia przycisku.Jak wykonać wywołanie programowo?

za to znalazłem kod taki jak ten.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:1-800-555-1212"]]; 

Czy to działa w iPhone SDK 3.0 i iPhone 2.0 również

może ktoś pls pomóc

Thank u góry.

Odpowiedz

48

Zachowaj numer telefonu w oddzielnym ciągu.

NSString *phoneNumber = @"1-800-555-1212"; // dynamically assigned 
NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber]; 
NSURL *phoneURL = [NSURL URLWithString:phoneURLString]; 
[[UIApplication sharedApplication] openURL:phoneURL]; 
+0

czy to działa w 3.0.2.0 os – MaheshBabu

+0

@MaheshBabu: Przepraszam, człowieku .. Nie mam pojęcia ... Ale domyślam się, że działa. – EmptyStack

+0

To działa tylko na iPhone'ie. 3.2 będzie iPadem, więc technicznie nie zadziała na 3.2. – WrightsCS

1
NSLog(@"Phone calling..."); 

     UIDevice *device = [UIDevice currentDevice]; 

     NSString *cellNameStr = [NSString stringWithFormat:@"%@",self.tableCellNames[indexPath.row]]; 

     if ([[device model] isEqualToString:@"iPhone"]) { 

      NSString *phoneNumber = [@"tel://" stringByAppendingString:cellNameStr]; 
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 

     } else { 

      UIAlertView *warning =[[UIAlertView alloc] initWithTitle:@"Note" message:@"Your device doesn't support this feature." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

      [warning show]; 
     } 

// VKJ

0

następujące kontrole fragmentu kodu, czy karta SIM jest obecny, czy nie, a także wtedy, gdy urządzenie jest zdolne do podejmowania wywołanie takich jak urządzenia non-SIM iOS

#import <CoreTelephony/CTTelephonyNetworkInfo.h> 
#import <CoreTelephony/CTCarrier.h> 


    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]]) { 
     // Check if iOS Device supports phone calls 
     CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init]; 
     CTCarrier *carrier = [netInfo subscriberCellularProvider]; 
     NSString *mnc = [carrier mobileNetworkCode]; 
     // User will get an alert error when they will try to make a phone call in airplane mode. 
     if (([mnc length] == 0)) { 
      // Device cannot place a call at this time. SIM might be removed. 
     } else { 
      // iOS Device is capable for making calls 
     } 
    } else { 
     // iOS Device is not capable for making calls 
    } 



    if (! [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"sms:"]]) { 
     // iOS Device is not capable to send SMS messages. 
    } 

nie zapomnij dodać Ramy CoreTelephony

Credit

Powiązane problemy