4

ホテルの説明的なテーブルビューの行をクリックして電話をかける機能を実装しました。メソッド「didSelectRowAtIndexPath」に次のコードを記述して、URLスキームを使用しました。

NSString *phoneNumber=element.phone;                                       
[NSString *phoneNumberScheme = [NSString stringWithFormat:@"tel:%@ ", phoneNumber];
NSlog(phoneNumberScheme);                      
phoneNumberScheme = [phoneNumberScheme stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

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

エラーなし!NSlogを使用して、番号が正しく読み取られたことを確認しました。そのため、正しく読み取られました(実際、コンソールにはtel:1-408-555-5555と表示されます)。問題は何も起こらないということです!!!

この時点で(これもWebで読んだものに基づいています)、シミュレーターでこのことをテストできないことに疑問があります。何か間違ったことをしているのですか、それともシミュレータでこの「URLスキーム」をテストできませんか?!

4

3 に答える 3

5

seanny94の答えを拡張すると、シミュレーターは、電話、マップ、Youtube、SMSアプリなど、iOSの多くのURLスキームをサポートしていません。これは、iPodtouchやiPadなどの電話機能を備えていないデバイスにも当てはまります。を介してURLスキームを使用する前に、を使用-openURL:してそのスキームのサポートを確認する必要があります。これは、現在のデバイスが使用しているURLスキームをサポートしているかどうかによって返されます-canOpenURL:YESNO

于 2010-07-19T16:17:04.143 に答える
2

シミュレーターで電話(または電話ベースの機能)をテストすることはできません。サポートはありません。

于 2010-07-19T16:07:59.440 に答える
0

この便利なコードを試してください

コードのスペースを削除します

NSString *trimmedString = [yourNumberString stringByReplacingOccurrencesOfString:@" " withString:@""];

確認後の通話コード

NSString *phoneNumber = [@"telprompt://" stringByAppendingString:trimmedString];

直通電話のコード

NSString *phoneNumber = [@"tel://" stringByAppendingString:trimmedString];
NSLog(@"Number : %@",phoneNumber);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
于 2013-09-17T11:09:10.090 に答える