こんにちは、ユーザーがボタンをクリックすると、実際の iPhone 電話アプリが開きます。
これを行う方法に関するアイデアやチュートリアルはありますか?
以下のこの行で簡単に電話をかけることができます。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:12125551212"]];
電話アプリケーションだけを開いて手動で番号を入力することはできません。アプリケーションから電話をかける前に提案したように、デフォルトの電話呼び出し画面が開き、その呼び出しが完了すると、アプリケーションにリダイレクトされます。
追加するだけで(同じ回答をもう一度コピーして貼り付けるだけではありません!)、電話番号にスペースが含まれている場合、このコード行は黙って失敗します。
そのため、電話アプリが +41 44 123 4567 にダイヤルしていると言ったとしても、コードで次の行を使用しようとしても、何も起こりません。これは電話番号として認識されません。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:+41 44 123 4567"]];
そのため、スペースをすべて取り除いてから、電話アプリに番号をダイヤルさせる必要があります。その時点で、電話番号が表示されるときに独自のスペースが電話番号に追加されます!!
私が使用したコードは次のとおりです (電話番号は現在、UILabel
呼び出された lblPhone に表示されています)。
NSString* phoneNumber = [self.lblPhone.text stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString* actionStr = [NSString stringWithFormat:@"telprompt:%@", phoneNumber];
UIDevice *device = [UIDevice currentDevice];
if ([[device model] isEqualToString:@"iPhone"] ) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:actionStr]];
}
このコードは、iPad でアプリを実行しているかどうかも確認します。もしそうなら、私たちは番号をダイヤルしようとはしません.
また、このスレッドの回答が示唆するように、 2 つの利点があるのではtelprompt:
なく、私が使用したことがわかります 。tel:
まず、小さなダイアログを表示して、ユーザーが本当にその電話番号に電話をかけたいかどうかを確認します。
次に、ユーザーがこの番号への通話を終了すると (そして電話を切ると)、アプリに戻ります。奇妙なことに、 usingはこれをtel:
行いません。
(XCode 5 & iOS 7.1 でテスト済み)
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:<You button title as phone number>"]];