1

我想在用户按下不允许弹出“应用程序想使用您当前的位置”时打开一个弹出窗口。有没有任何委托方法?

4

4 回答 4

5

你不敢看文档...

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
    if (status == kCLAuthorizationStatusDenied) {
        // FA1LZ
    }
}
于 2013-02-08T06:13:03.123 回答
0

检查locationManager:didFailWithError:和。locationManager:didChangeAuthorizationStatus:_CLLocationManagerDelegate

于 2013-02-08T06:16:31.787 回答
0

首先需要获取当前位置。阅读此文档以获取当前位置。

并使用这种方法

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status

参数 :

1 - manager
报告事件的位置管理器对象。
2 - status
应用程序的新授权状态。

本方法的使用

只要应用程序使用位置服务的能力发生变化,就会调用此方法。由于用户允许或拒绝为您的应用程序或整个系统使用位置服务,因此可能会发生更改。

更多信息阅读官方文档

于 2013-02-08T06:18:10.413 回答
0

您可以使用以下委托方法:

- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error
{
    if([error code]== kCLErrorDenied)
        self.locationDenied = YES;

        switch ([error code]) {
            // "Don't Allow" on two successive app launches is the same as saying "never allow". The user
            // can reset this for all apps by going to Settings > General > Reset > Reset Location Warnings.
        case kCLErrorDenied:
            [appDelegate showAllowGPSLocationView];
        default:
            break;
        }

    self.locationDefined = NO;
}

当用户不允许 GPS 定位时,将调用上述委托方法。您可以使用“kCLErrorDenied”检查并处理您想做的任何事情。

这里,“showAllowGPSLocationView”是“AppDelegate”中实现的方法,用于通知用户允许 GPS 定位。

希望,对你有帮助。

快乐编码:)

干杯!

于 2013-02-08T06:18:52.603 回答