如何在OS X Today Extension中使用CLLocationManager?

时间:2016-06-12 18:20:45

标签: swift macos core-location today-extension

我试图让用户在今日推广中占据一席之地,而且我正在走向死胡同。

在OS X应用程序中,当您致电locationManager.startUpdatingLocation()时,会弹出一个对话框,询问您是否要让该应用使用您的位置。但是,在今日视图中,调用此方法后根本没有任何内容出现,我的代理人没有被didUpdateLocationsdidFailWithError调用。 CLLocationManager.authorizationStatus()返回NotDetermined。我一直在查看关于今日扩展程序的Apple的文档,并且没有太多关于权限或获取用户位置的信息。

我们如何在OS X Today Extension中获取用户的位置?

编辑:需要注意的一点是CLLocationManager.locationServicesEnabled()在我的OS X应用上返回true,在我的今日推广上返回false。这是什么意思,我该如何改变呢?

1 个答案:

答案 0 :(得分:4)

OS X Today Extensions默认情况下使用App Sandbox,您需要选中右侧框以允许Today Extension执行诸如获取用户位置和进行网络呼叫等操作。

转到Xcode中的项目设置,选择您的OS X Today Extension目标,点击功能标签,展开 App Sandbox 部分,并选中所需功能的框(在我的例子中,位置和传出网络连接)。