如何在 OS X Today 扩展中使用 CLLocationManager?
How do I use CLLocationManager in an OS X Today Extension?
我试图在 Today Extension 中获取用户的位置,但我遇到了死胡同。
在 OS X 应用程序上,当您调用 locationManager.startUpdatingLocation()
时,会弹出一个对话框,询问您是否要让该应用程序使用您的位置。但是,在“今天”视图中,调用此方法后什么也没有出现,我的委托也没有被调用 didUpdateLocations
或 didFailWithError
。 CLLocationManager.authorizationStatus()
returns NotDetermined
。我一直在查看有关 Today Extensions 的 Apple 文档,但没有看到太多关于权限或获取用户位置的信息。
我们打算如何在 OS X Today 扩展中获取用户的位置?
编辑:需要注意的一件事是 CLLocationManager.locationServicesEnabled()
returns true
在我的 OS X 应用程序上,false
在我的 Today Extension 上。这是什么意思,我该如何更改?
OS X Today Extensions 默认使用 App Sandbox,您需要选中正确的框以允许 Today Extension 执行诸如获取用户位置和进行网络调用等操作。
转到项目设置 Xcode,select OS X Today Extension 目标,单击 Capabilities 选项卡,展开 App Sandbox 部分,然后选中所需功能的复选框(在我的例子中,位置和传出网络连接)。
我试图在 Today Extension 中获取用户的位置,但我遇到了死胡同。
在 OS X 应用程序上,当您调用 locationManager.startUpdatingLocation()
时,会弹出一个对话框,询问您是否要让该应用程序使用您的位置。但是,在“今天”视图中,调用此方法后什么也没有出现,我的委托也没有被调用 didUpdateLocations
或 didFailWithError
。 CLLocationManager.authorizationStatus()
returns NotDetermined
。我一直在查看有关 Today Extensions 的 Apple 文档,但没有看到太多关于权限或获取用户位置的信息。
我们打算如何在 OS X Today 扩展中获取用户的位置?
编辑:需要注意的一件事是 CLLocationManager.locationServicesEnabled()
returns true
在我的 OS X 应用程序上,false
在我的 Today Extension 上。这是什么意思,我该如何更改?
OS X Today Extensions 默认使用 App Sandbox,您需要选中正确的框以允许 Today Extension 执行诸如获取用户位置和进行网络调用等操作。
转到项目设置 Xcode,select OS X Today Extension 目标,单击 Capabilities 选项卡,展开 App Sandbox 部分,然后选中所需功能的复选框(在我的例子中,位置和传出网络连接)。