9

を使用してアプリから電話をかけようとしています

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://1800000002"]];

これはインドのフリーダイヤル番号ですが、ダイヤル中は +1(800)-000-000 に変換されます (ダイヤルを米国の番号に変換して言います)。

電話番号をキーパッドにコピー/貼り付けして、インドのフリーダイヤル番号にリダイヤルすると、iPhone が米国に接続されます] 。しかし、解決策を見つけることができませんでした。

ですから、このISDコールインドのローカルコールを避けるために私を助けてください..

4

3 に答える 3

2

telprompt では、国際形式の番号が必要です。したがって、それに変換する必要があります。インドとあなたがかけようとしている番号の場合、これは+911800000002.

したがって、これは機能するはずです:

NSURL *phoneURL = [NSURL URLWithString:@"telprompt://+911800000002"];
if ([[UIApplication sharedApplication] canOpenURL:phoneURL]) {
    [[UIApplication sharedApplication] openURL:phoneURL];
} else {
    // handle that case. e.g show number to user so that they can
    // type it in a phone manually or copy it to the clipboard and
    // notify user about that.
}

国際形式と比較したローカル番号がインドでどのように機能するかによっては、番号の を削除する必要がある場合がありますが1、それについては不明です.

補足: 電話番号を扱うときは、常に国際形式を使用する必要があります。そうしないと、現在目的地の国外にあるデバイスが他の誰かに電話をかけたり、まったく電話をかけることができなくなったりする可能性があります。

于 2016-05-12T07:08:19.820 に答える
1

郡コードが追加されました (インドの場合: +91)

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://+911800000002"]];

国コードを見つける一般的な方法

NSLocale *currentLocale = [NSLocale currentLocale];  // get the current locale.
NSString *countryCode = [currentLocale objectForKey:NSLocaleCountryCode]; // get country code, e.g. ES (Spain), FR (France), etc.
于 2016-07-17T18:42:44.587 に答える