【发布时间】:2015-08-14 15:30:02
【问题描述】:
我需要在不打开任何视图控制器(在后台)的情况下执行一个功能(基本上开始更新位置和距离)
我需要小部件在我的应用程序中像“远程控制”按钮一样工作。
然后当我打开应用程序时,该进程应该正在运行并显示相应的视图控制器
【问题讨论】:
标签: ios iphone swift ios8-today-widget today-extension
我需要在不打开任何视图控制器(在后台)的情况下执行一个功能(基本上开始更新位置和距离)
我需要小部件在我的应用程序中像“远程控制”按钮一样工作。
然后当我打开应用程序时,该进程应该正在运行并显示相应的视图控制器
【问题讨论】:
标签: ios iphone swift ios8-today-widget today-extension
您无法直接与应用的进程进行通信。如果您不想立即启动应用程序,您可以通过共享容器传递一些数据:
let sharedUserDefaults = NSUserDefaults(suiteName: "group.com.mycompany.myapp")!
sharedUserDefaults.setBool(true, forKey: "tracking location")
sharedUserDefaults.synchronize()
然后在您应用的applicationDidBecomeActive: 中,您可以读出该值:
let sharedUserDefaults = NSUserDefaults(suiteName: "group.com.mycompany.myapp")!
if sharedUserDefaults.boolForKey("tracking location") {
startTrackingLocation()
}
sharedUserDefaults.removeObjectForKey("tracking location")
sharedUserDefaults.synchronize()
您今天的小部件控制器也可以是CLLocationManagerDelegate,并在小部件可见时跟踪用户的位置。
【讨论】: