没有SKTNavigationManager

时间:2016-05-09 09:48:21

标签: ios swift skmaps

我正在使用Skobbler导航SDK以快速语言开发IOS应用程序。 我尝试允许用户在后台模式下使用导航(iPhone已锁定)。

我有以下问题:

1)是否可以在不使用SDKTools和SKTNavigationManager的情况下这样做?我们只使用SKMaps.frameworks函数。

使用此配置,我无法使用allowBackgroundNavigation SKTNavigationConfiguration的属性,如演示文稿。

我设定了 SKPositionerService.sharedInstance().worksInBackground = true

并允许在BackgroundMode中使用"位置更新"到info.plist。不幸的是,updateCurrentLocation并没有在后台触发,导航也不起作用。

非常感谢您:-) !!

P.S。 :我成功地使用官方库CCLocationManager在后台运行了一个短代码。所以我的应用似乎配置正确...

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

抱歉..这不是答案,而是一个相同的问题"。当应用在后台时,不会调用updatedCurrentLocation。 以为我添加了一些代码来提供更多信息,也许找到原因:

我的代码:

SKPositionerService.sharedInstance().delegate = self
SKPositionerService.sharedInstance().worksInBackground = true
SKPositionerService.sharedInstance().automaticLocationUpdatePause = false
SKPositionerService.sharedInstance().startLocationUpdate()

还尝试将SKPositionerService.sharedInstance().startLocationUpdate()作为第一行。没有运气。

当我像SKPositionerService一样运行CLLocationManager时:

locManager = CLLocationManager()
locManager.desiredAccuracy = 10000
locManager.distanceFilter = 10000
locManager.allowsBackgroundLocationUpdates = true
locManager.pausesLocationUpdatesAutomatically = false
locManager.startUpdatingLocation()

updatedCurrentLocation在后​​台被调用。

我在运行2.5.0时使用了这个,因为该版本尚未准备好iOS9,但我认为2.5.1会是。这当然是一个可怕的解决方法,因为第二位置管理员吃电池。

可能是,在SKPositionerService实现中,当CLLocationManager().allowsBackgroundLocationUpdates设置为true时,您没有将SKPositionerService.sharedInstance().worksInBackground设置为true吗?

顺便说一下,我正在运行发布here的2.5.1热修复程序。

btw2:无法在模拟器中测试。即使应用程序背景为',模拟器也会调用updatedCurrentLocation。我在猜测,因为模拟器并没有真正的背景'模式。

btw3:如果后台模式适用于SDKTools导航管理器,我会非常惊讶...使用此2.5.1。热修复)