gpt4 book ai didi

ios - CLCircularRegion 和唤醒应用

转载 作者:行者123 更新时间:2023-11-29 01:15:45 25 4
gpt4 key购买 nike

在应用程序中,我们有类似 iOS 中的原生 Reminder 应用程序的机制,当用户进入或退出某个区域时会触发通知。

但是两个设备同时表现不同(5 和 5 秒)。所有设备都启用通知,并允许使用位置。

两个设备有一些“行程”,并在 route 创建了 10 个点。第一台设备 (5) 完成时仅收到 6 条通知,(5s) 未收到任何通知。

但我的问题是我如何知道我的应用程序何时在后台重新启动或继续工作。因为,所有登录的应用程序我都重定向到一个文件中,下载容器后分析应用程序在运行时发生了什么。

我注意到当设备进入区域并且我的日志标记在文件中触发但未收到通知时,应用程序会在同一时间重新启动。当应用程序尝试从 didFinishLaunchingWithOptions

中的 Web 服务获取一些信息时,就会发生这种情况

也许这就是问题。如何区分重启应用程序或继续工作。谢谢。

最佳答案

您是否在 didFinishLaunchingWithOptions 中检查 UIApplicationLaunchOptionsLocationKey 类似于(抱歉,我现在拥有的是 Swift):

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if launchOptions?[UIApplicationLaunchOptionsLocationKey] != nil {
// app was launched in response to incoming location event
}
}

此外,如果您还没有这样做,您可能需要在应用程序处于后台时以不同方式创建通知:

    // Show an alert if application is active
if UIApplication.sharedApplication().applicationState == .Active {
if let message = notefromRegionIdentifier(region.identifier) {
if let viewController = window?.rootViewController {
showSimpleAlertWithTitle(nil, message: message, viewController: viewController)
}
}
}
else {
// Otherwise present a local notification:
let notification = UILocalNotification()
notification.alertBody = notefromRegionIdentifier(region.identifier)
notification.soundName = "Default";
UIApplication.sharedApplication().presentLocalNotificationNow(notification)
}

关于ios - CLCircularRegion 和唤醒应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35212588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com