当您第一次使用MKMapView启动应用程序时,应用程序会显示警告,并显示消息“想要使用您当前的位置”,并选择“不允许”和“确定”。
我需要自定义此消息。此外,我需要知道用户选择了哪个选项。我怎样才能做到这一点?
更新: 我需要在iOS 5 +
上实现这一点答案 0 :(得分:3)
在CLLocationManager设置目标属性
从这个问题:Replacement for "purpose" property of CLLocationManager
Anna Karenina回答
在iOS 6中替换目的属性是一个新的Info.plist 密钥名为NSLocationUsageDescription(又名“隐私 - 位置使用” 说明“)。
密钥记录在“信息属性列表密钥参考”中 但不幸的是,它没有被提及的弃用说明 目的财产。
但是,CLLocationManager.h确实有这个评论:
- 已过时。使用密钥NSLocationUsageDescription在Info.plist中设置目的字符串。
在您的代码中,您可以设置密钥和目的属性(但是 您可能想要检查位置管理员是否对此做出响应 选择器首先是/当将来实际删除该方法时。)
如果在iOS 6下运行,位置管理器将使用该密钥。什么时候 在低于iOS 6的情况下运行,关键将被忽略和目的 属性将被使用。
答案 1 :(得分:0)
对于消息,您可以使用目标属性,如Alex Terente所说,但它已在iOS 6中弃用
用于了解用户是否拒绝了位置管理器提供失败委托的权限。 mapview使用自己的位置管理器,因此:使用MKMapView
函数didFailToLocateUserWithError
- (void)mapView:(MKMapView *)mapView didFailToLocateUserWithError:(NSError *)error {
switch([error code]) {
case kCLErrorDenied:{
//user denied
}
break;
}
}
注意:如果您直接使用CLLocationManager,它将是- (void)locationManager: (CLLocationManager *)manager didFailWithError: (NSError *)error;
答案 2 :(得分:0)
如果您要为iOS 6+构建,请使用Info.plist
文件中的NSLocationUsageDescription
。插入此密钥并将其值设置为您对位置信息的描述。