How to make a call programmatically?

前端 未结 3 1404
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-27 20:16

I need to call programmatically in my app in a button click.

for that i found code like this.

[[UIApplication sharedApplication] openURL:[NSURL URLWi         


        
相关标签:
3条回答
  • 2020-11-27 20:54
      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 讨论(0)
  • 2020-11-27 21:04

    Keep the phone number in a separate string.

    NSString *phoneNumber = @"1-800-555-1212"; // dynamically assigned
    NSString *phoneURLString = [NSString stringWithFormat:@"tel:%@", phoneNumber];
    NSURL *phoneURL = [NSURL URLWithString:phoneURLString];
    [[UIApplication sharedApplication] openURL:phoneURL];
    
    0 讨论(0)
  • 2020-11-27 21:18

    The following code snippet checks if SIM card is present or not as well if the device is capable of making the call such as non-sim ios devices

     #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. 
        }
    

    Don't forget to add the CoreTelephony framework

    Credit

    0 讨论(0)
提交回复
热议问题