27

次を使用してiosアプリから電話番号を呼び出そうとしています:メソッドが呼び出されますが、機能していません:

-(IBAction)callPhone:(id)sender {

        NSString *phoneCallNum = [NSString stringWithFormat:@"tel://%@",listingPhoneNumber ];

        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneCallNum]];

        NSLog(@"phone btn touch %@", phoneCallNum);
    }

NSLog出力: phone btn touch tel://+39 0668806972

4

5 に答える 5

89

あなたのコードは正しいです。実際のデバイスでチェックインしましたか。この関数はシミュレータでは機能しません。

これも試して、

NSString *phNo = @"+919876543210";
NSURL *phoneUrl = [NSURL URLWithString:[NSString  stringWithFormat:@"telprompt:%@",phNo]];

    if ([[UIApplication sharedApplication] canOpenURL:phoneUrl]) {
        [[UIApplication sharedApplication] openURL:phoneUrl];
    } else
    {
        calert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Call facility is not available!!!" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
        [calert show];
    }

** Swift 3 バージョン **

if let url = URL(string: "telprompt:\(phoneNumber)") {
  if UIApplication.shared.canOpenURL(url) {
    UIApplication.shared.open(call, options: []) { result in
       // do something with result
    }
  }
}
于 2013-09-20T10:18:54.963 に答える
14

テレフォニーはシミュレーター/iPod/iPad では機能しません。アクティブな SIM カードを搭載した iPhone でアプリを実行する必要があります。

また、テレフォニー アプリケーションを呼び出す URL スキームはtel:<phone_number>. Apple ドキュメントを参照してください。

理想的には、デバイスにテレフォニー モジュールがあるかどうかを確認してから、openURL:通話を実行する必要があります。このコードを使用してチェックを実行します。

if([[UIApplication sharedApplication] canOpenURL:callUrl]) {
    [[UIApplication sharedApplication] openURL:callUrl];
}
else {
    //Show error message to user, etc.
}
于 2013-09-20T10:15:00.793 に答える
5

次の方法で電話をかけます。

 NSString *phoneNumber = [@"tel://" stringByAppendingString:number];
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
于 2013-09-20T10:14:51.597 に答える
0

以下のように試すことができます。

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

お役に立てば幸いです。

于 2013-09-20T10:12:42.467 に答える
0
 NSString *phoneNumber = [@"tel://" stringByAppendingString:@"9414481799"];
 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];

これはデバイスでのみ実行されます。

于 2013-09-20T10:17:56.553 に答える