MKMapview を使用してネイティブの iPhone アプリケーションでマップを表示し、マップ ビューに 2 つのマーカーを追加します。注釈マーカーをクリックすると、電話番号が表示され、電話番号をクリックするとその番号に電話をかける必要があります。
これどうやってするの ?
これが機能する方法は次のとおりです。アプリケーションを開くための「tel:」URL を指定します。これにより電話アプリケーションが呼び出され、指定された番号へのダイヤルが自動的に開始されます。注釈の吹き出しをクリックしてこれを行うにmapView:annotationView:calloutAccessoryControlTapped:は、MKMapViewDelegate.
たとえば、ダイヤルしたい電話が注釈のタイトルである場合、次のようにします。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
NSString *phoneNo = view.annotation.title;
NSString *telString = [NSString stringWithFormat:@"tel:%@", phoneNo];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telString]];
}
実際には、現在のデバイスが実際に電話であるかどうか (つまり、iPod touch や iPad ではないかどうか) も確認する必要があります。また、電話アプリを起動する前に、電話をかけようとしていることをユーザーに知らせるとよいでしょう。たとえば、電話をかけるかキャンセルするかを決定できるアクション シートを表示します。