【问题标题】:CLCircularRegion and wake up appCLCircularRegion 和唤醒应用程序
【发布时间】:2016-05-14 17:56:47
【问题描述】:

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

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

两个设备有一些“旅行”,并在路线上创造了 10 个点。第一个设备 (5) 完成时只收到 6 个通知,(5s) 没有收到任何通知。

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

我注意到当设备进入区域并且我的日志标记在文件中触发但未收到通知时,应用程序在同一时间重新启动。当应用程序尝试从didFinishLaunchingWithOptions 中的网络服务获取一些信息时,就会发生这种情况

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

【问题讨论】:

    标签: ios objective-c iphone cllocationmanager clregion


    【解决方案1】:

    您是否正在检查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)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      相关资源
      最近更新 更多