定位服务在 ios8 中不起作用

Posted

技术标签:

【中文标题】定位服务在 ios8 中不起作用【英文标题】:Location services not working in ios8 【发布时间】:2014-09-20 13:51:13 【问题描述】:

我现在苦苦挣扎了几天,但我无法解决我的问题(尽管这里有关于 SO 的所有信息)。对不起,我很愚蠢。

在我的应用中,位置服务在 ios 8 中停止工作。在此版本之前,一切正常。 我在这里读到 de plist 文件中必须有一些键,并且必须使用外部编辑器设置它们。

这里是:

但它仍然无法正常工作。在模拟器中,或者在我的设备上,我不会被提示。

我也知道在我的文件中添加一些代码。 我应该添加什么代码,我应该在哪里添加?

这是我的 .h 文件:

@property (strong, nonatomic) CLLocationManager *location;

这是在我的 .m 文件中:

@synthesize location;

-(void) locationStuff 

//Get location en set MapView

location=[[CLLocationManager alloc]init];
location.delegate=self;
location.desiredAccuracy=kCLLocationAccuracyBest;
location.distanceFilter=kCLDistanceFilterNone;
location.pausesLocationUpdatesAutomatically = NO;

[self startUpdatingLocation];

[mapView setDelegate:self];
[mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:NO] forKey:@"appRunning"];

[[NSUserDefaults standardUserDefaults] synchronize];

有人可以帮帮我吗?感谢并再次抱歉,我不理解其他问题的答案。我真的需要一些简单的解释。

【问题讨论】:

【参考方案1】:

在 iOS 8 中发生了变化,您必须使用以下代码请求位置服务。

requestAlwaysAuthorization - 用于后台定位

[self.locationManager requestAlwaysAuthorization];

requestWhenInUseAuthorization-location 仅在应用处于活动状态时

[self.locationManager requestWhenInUseAuthorization];

如果您没有提出两个请求中的任何一个,iOS 将忽略 startUpdateLocation 请求。

还有。 包括 NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription 键,我看到你已经完成了。

希望这会有所帮助。

【讨论】:

部分帮助。我把代码 [self.location requestAlwaysAuthorization];在我看来DidLoad。有时会弹出对话框,有时不会。钥匙仍然在同一个地方。有时它会提供一个位置,我的应用程序可以运行,有时没有可见的位置,显然应用程序无法运行。有什么建议吗?

以上是关于定位服务在 ios8 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 分享功能在 iOS8 中不起作用

Phonegap / Cordova 在 ios8 中不起作用

UIActivityViewController 在 iOS 8 中不起作用

Facebook 应用邀请在使用 Facebook SDK 4.X 的 iOS8 中不起作用?

UINavigationBar 外观 addSubview 在 iOS 8 中不起作用

自定义字体在 iOS 8 中不起作用