如何在应用程序初始化前获得GPS位置



有一个简单的应用程序可以获得gps location。我想在应用程序初始化之前获得gps位置。对我来说,GPS位置似乎是异步更新的,当问题弹出时,我确实会在后台加载应用程序屏幕:"允许应用程序使用您的当前位置?"

好吧,我该如何回调(抱歉,来自Ruby/JS后台),直到我得到当前位置。

代码:

-(无效)视图WillAppear:(BOOL)已设置动画{//设置主视图以利用设备的整个应用程序框架空间。//更改此项以满足应用程序中视图的UI占用需求。CLController=[[CoreLocationController alloc]init];CLController.delete=self;[CLCController.locMgr startUpdatingLocation];self.view.frame=[[UIScreen mainScreen]applicationFrame];[super-viewWillAppear:动画];}

CoreLocationController.m

-(void)位置管理器:(CLLocationManager*)管理器didUpdateToLocation:(CLLocations*)newLocationfromLocation:(CLLocation*)oldLocation{NSLog(@"更新位置");if([self.delegate conformsToProtocol:@protocol(CoreLocationControllerDelegate)]){[self.delegate locationUpdate:newLocation];[self.locMgr stopUpdatingLocation];#=>等待初始化,直到此时,然后继续

您只需要启动并运行您的应用程序。

有两件事我会尝试(同时)处理延迟:

  • 误导!从打开另一个屏幕开始。让用户对其他内容感兴趣。一次点击的延迟可能就是你所需要的全部,特别是如果这不是第一次运行的话。在第一次运行时,当你知道需要一点时间时,运行一个占用时间的小教程。

  • 从最后一个位置开始-如果不准确的位置信息可能有害,这可能不适合你,但你可以存储应用程序退出时收到的最后一个地点,并在再次启动应用程序时将其用作你的当前位置。当然,你想表明位置充其量只是猜测,所以你可能想用不确定圆画出你自己的位置点,表明整个地图都是不确定的区域,直到你得到第一个GPS定位,然后你就可以开始绘制真实的位置更新了。

我认为,在等待位置更新的过程中,你什么都不做的人为延迟将比接受这需要很短的时间并在这段时间内尽可能多地做更糟糕的用户体验。

最新更新