我正在开发一个Web应用程序,使用户只能在特定位置登录。我正在使用CLLocationManager并在startUpdatingLocation
初始化并调用AppDelegate -didFinishLaunchingWithOptions
。我的UIWebView应该在初始化时拉取位置以确定用户是否在指定位置内。但是,在我的应用程序启动时,[locationManager location]
始终为null,并在初始化并显示我的UIWebView后更新,因此已向用户发送错误消息。
如何让locationManager在初始化时更新其位置?
答案 0 :(得分:2)
听起来你已正确编码了位置信息。你所缺少的(但已经看到)是更新肯定不会立即发生。您需要在可用的位置信息上“关闭”UI的其余部分(即您的webview)。有很多方法可以做到这一点。一个常见的策略是向用户呈现全屏“HUD”或面纱,向用户显示应用正在初始化或定位它们(带有活动指示器,也总是很好用。)在此背后(看不见)对于用户而言,您可以等待位置结果,然后启动相应的UI更新,然后放弃面纱。
任何有意义或给你一些想法?我做了很多次。将异步活动(如位置更新)与有意义的实时UI更新同步可能具有挑战性,但并非不可能。 : - )
答案 1 :(得分:0)
您需要在应用程序UI中考虑初始零值并等待第一次位置更新。
讨论
如果没有位置数据,则此属性的值为nil 曾被检索过。检查位置的时间戳是个好主意 回。如果接收者当前正在收集位置数据,但是 最小距离过滤器很大,返回的位置可能是 比较老。如果是,您可以停止接收器并再次启动它 强制更新
此外,您应该查看Region Monitoring,因为您希望用户只能在特定位置登录。