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

Rik*_*son 10 macos core-location swift today-extension

我正试图让用户在今日推广中的位置,我正在走向死胡同.

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

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

编辑:需要注意的一件事是我的OS X应用程序和我的今日扩展程序上的CLLocationManager.locationServicesEnabled()返回.这意味着什么,我该如何改变呢?truefalse

Rik*_*son 4

OS X Today Extensions 默认使用应用程序沙箱,您需要选中正确的框以允许 Today Extension 执行诸如获取用户位置和进行网络调用之类的操作。

转到 Xcode 中的项目设置,选择 OS X Today 扩展目标,单击“功能”选项卡,展开“应用程序沙盒”部分,然后选中所需功能的框(在我的示例中为“位置”和“传出网络连接”)。