2015-07-28 22 views
18

Tôi cần tìm nạp vị trí hiện tại của người dùng cho Ứng dụng WatchKit trong watchOS 2. Làm cách nào để thực hiện việc này?Cách nhận vị trí hiện tại trong watchOS 2?

+3

Tại sao câu hỏi này sẽ được bình chọn xuống? Đó là một câu hỏi hoàn toàn hợp lệ. smh – Rickster

Trả lời

22

Các câu trả lời khác không chính xác. Bạn có thể yêu cầu vị trí trực tiếp trên đồng hồ để xem OS2. Phương thức có sẵn được gọi là requestLocation. Nó cho phép bạn yêu cầu cập nhật vị trí duy nhất.

Ví dụ:

#import <CoreLocation/CoreLocation.h> 
@interface className : WKInterfaceController<CLLocationManagerDelegate> 

Sau đó, nơi bạn muốn yêu cầu vị trí:

self.locationManager = [CLLocationManager new]; 
self.locationManager.delegate = self; 
[self.locationManager requestWhenInUseAuthorization]; 
[self.locationManager requestLocation]; 

Sau đó, bạn sẽ nhận được một cuộc gọi lại duy nhất trong một trong những phương pháp sau đây CLLocationManagerDelegate.

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { 
    // Callback here with single location if location succeeds 
} 

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { 
    // Error here if no location can be found 
} 

Xem video WWDC15 "Có gì mới trong lõi Location" - https://developer.apple.com/videos/wwdc/2015/?id=714

Imgur

+0

Ah, cảm ơn vì đã đề cập đến. Tôi không biết rằng .. – Ben

+1

Cảm ơn! Nhưng điều quan trọng cần đề cập đến là điều này không hoạt động trong ExtensionDelegate. Trong một "WKInterfaceController" nó hoạt động hoàn toàn tốt. – Blankarsch

+0

@Blankarsch Có lý do nào trong trường hợp này không? Nếu chúng ta cần một người quản lý trung tâm độc lập với UI thì sao? – TealShift

Các vấn đề liên quan