从今天的小部件按钮

时间:2015-08-14 15:30:03

标签: ios iphone swift ios8-today-widget today-extension

我需要执行一个函数(基本上开始更新位置和距离驱动)而不打开任何视图控制器(在背景上)

我需要小部件像"遥控器一样工作"我的应用程序内的按钮。

然后当我打开应用程序时,该进程应该正在运行并显示相应的视图控制器

1 个答案:

答案 0 :(得分:0)

您无法直接与应用的流程进行通信。如果您不想立即启动应用,可以通过共享容器传递一些数据:

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,并在窗口小部件可见时跟踪用户的位置。