我目前正在 Swift 中进行 regionMonitoring 工作,在那里我检查用户是否在某个位置附近。我使用后台模式(位置)来检查用户每移动 50 米的位置。这会唤醒我的应用程序,并在application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?)
.
我还在第一个 viewController 上检查用户是否有可用的互联网连接。如果没有,则会显示一条消息:“请确保您已连接到 Internet。”
在过去的几天里,我注意到即使我确实有工作连接也会显示此消息,但是当我在移动时我的 Internet 已关闭。所以我认为应用程序被唤醒,然后在 didFinishLaunchingWithOptions 之后定向到第一个视图控制器。
这可能吗?收集新位置时,我的应用程序是否“完全”启动?我可以实施以下didFinishLaunchingWithOptions
措施来防止这种情况:
if(launchOptions?[UIApplication.LaunchOptionsKey.location] != nil) {
// handle new location that was sent, but don't launch the rest of the application
} else {
// do all the regular stuff, such as setting keyWindow etc
}
或者在某些情况下这会造成麻烦吗?如果我自己打开应用程序,是否可以在其中包含位置密钥?