1

我目前正在 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

}

或者在某些情况下这会造成麻烦吗?如果我自己打开应用程序,是否可以在其中包含位置密钥?

4

1 回答 1

0

我只是想我需要启动整个应用程序,否则当我重新打开应用程序时会出现黑屏(因为启动已经初始化)。所以我现在要做的是检查 willEnterForeground 如果应用程序卡在“假”初始屏幕视图控制器上,如果是这样,我重新检查连接并从那里启动。

于 2019-07-10T13:55:20.553 回答