我正在使用 MKMapview 在我的原生 iPhone 应用程序中显示地图,并向地图视图添加两个标记。单击注释标记时,我希望显示一个电话号码,然后单击电话号码应该拨打该号码。
我怎样才能做到这一点 ?
它的工作方式是:您提供一个“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)。在启动电话应用程序之前让用户知道他们将要拨打电话也很好。例如,向他们展示一个操作表,让他们决定是拨打电话还是取消。