class: Location
定位。
func
getLocation(_ type:LocationModuleType = .whenInUse)
未注册过权限,进行权限注册.授权状态下开启定位.
delegate: LocationDelegate
- onGetLocation(_ location:LocationModel)
获取当前定位的位置信息
model: LocationModel
定位返回的位置信息
enum: LocationModuleType
/// 注册定位方式
///
/// - always: 在前台和后台都可以访问位置
/// - whenInUse: 仅在前台访问位置
@objc public enum LocationModuleType : Int {
case always
case whenInUse
}
使用注意
- 1.在info.plist 中添加位置服务权限
<!-- 在使用期间访问位置 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
<!-- 始终访问位置 -->
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
- 2.
always
模式下如果需要app在后台开启定位: 选择project --> 到 Capabilities ——>找到Background Modes 将off改成on 并且勾选 Location updates
使用
// 1.创建`Location`对象
let locationModule = Location.share
// 2.设置代理
locationModule.delegate = self
// 3.开启定位,默认设置`whenInUse`,如果想设置`always`,使用:locationModule.getLocation(.always)
locationModule.getLocation()
// MARK: - LocationDelegate
func onGetLocation(_ location: LocationModel) {
// get location info..
}
LocationModel
parameters | types | |
---|---|---|
longitude | Double | 经度 |
latitude | Double | 纬度 |
country | String? | 国家 |
administrativeArea | String? | 省 直辖市 |
locality | String? | 地级市 直辖市区 |
subLocality | String? | 县 区 |
thoroughfare | String? | 街道 |
subThoroughfare | String? | 子街道 |