在使用 swiftui 的小部件中如何获取当前位置? [复制]

Posted

技术标签:

【中文标题】在使用 swiftui 的小部件中如何获取当前位置? [复制]【英文标题】:In widget using swiftui how to get current location? [duplicate] 【发布时间】:2020-12-17 18:14:18 【问题描述】:

如何在小部件中获取用户当前位置?我正在使用 swiftUI。

【问题讨论】:

【参考方案1】:
class WidgetLocationManager: NSObject, CLLocationManagerDelegate 
    var locationManager: CLLocationManager? 
    private var handler: ((CLLocation) -> Void)?

    override init() 
        super.init()
        DispatchQueue.main.async 
            self.locationManager = CLLocationManager()
            self.locationManager!.delegate = self
            if self.locationManager!.authorizationStatus == .notDetermined 
                self.locationManager!.requestWhenInUseAuthorization()
            
        
    
    
    func fetchLocation(handler: @escaping (CLLocation) -> Void) 
        self.handler = handler
        self.locationManager!.requestLocation()
    

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) 
        self.handler!(locations.last!)
    
    
    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) 
        print(error)
    

打电话

var widgetLocationManager = WidgetLocationManager()

func getTimeline(for configuration: SelectPlaceIntent, in context: Context, completion: @escaping (Timeline<Entry>) -> Void) 
    widgetLocationManager.fetchLocation(handler:  location in
        print(location)
        .......
    )

【讨论】:

我忍不住又靠近了一步

以上是关于在使用 swiftui 的小部件中如何获取当前位置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 SwiftUI 小部件中添加观察者的位置

如何在tkinter中找出当前的小部件大小?

如何使用 SwiftUI 获取当前位置?

获取 SwiftUI 中 ScrollView 的当前位置?

使用 SwiftUI 和 MapKit 检索用户当前位置

使用 TelephonyManager 获取 SIM 国家/地区代码 - 如何?