Възможно ли е да се получи местоположение в рамките на iOS?

Създадох рамка в swift. Но се опитвам да получа стойности на местоположението - ширина и дължина в рамката. Кодът по-долу се компилира добре, но стойностите на местоположението не се попълват. Вече добавих ключ NSlocationWheninUseUSageDescription към info.plist.

Може ли някой да ми каже възможно ли е дори да се получат стойности на местоположение в рамката? Ако да, тогава какво трябва да се направи тук?

Забележка: Този код работи добре, ако се добави към класа ViewController на основното приложение. Но потребителят не получава съобщението за оторизация, ако този код се добави към рамката и се извика от там.

import Foundation
import CoreLocation


public class FrameworkInit : NSObject, CLLocationManagerDelegate {


var locationManager = CLLocationManager()
var lat = ""
var long = ""
var locflag = false
var _appKey = ""

func fetchLocation()
{
    println("fetch loc called....")
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestWhenInUseAuthorization()
    locationManager.startUpdatingLocation()
}

public func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!)
{
    var locValue:CLLocationCoordinate2D = manager.location.coordinate
    lat = locValue.latitude.description
    long = locValue.longitude.description
    println("lat.....\(lat)   \nlong...... \(long)")
    self.locationManager.stopUpdatingLocation()
    if !locflag {

        SPDeviceRegister().saveDataOnDevice(_appKey, lat: lat, long: long)

        SPReceiver().thresholdValueSetter()

    }
    locflag = true
}

 public func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!)
{
    println("Error:" + error.localizedDescription)
    if !locflag {

        SPDeviceRegister().saveDataOnDevice(_appKey, lat: "0.0", long: "0.0")

        SPReceiver().thresholdValueSetter()
    }
    locflag = true
}


public init(appKey: String)
{
    super.init()
    _appKey = appKey
    self.fetchLocation()
}
}

person Debasish Mitra    schedule 06.05.2015    source източник
comment
възможен дубликат на Как мога да получа текущо местоположение от потребител в iOS   -  person Vivek Molkar    schedule 06.05.2015
comment
Дори ако изграждате рамка, пак трябва да получите разрешение от потребителя, за да получите местоположенията. Вашата рамка публикува ли някакъв метод, за да управлява необходимите CLLocationManager разрешения (и наличност)?   -  person Matteo Piombo    schedule 06.05.2015
comment
Въпреки че съм нов в разработката на iOS, но този код работи добре, ако се добави вътре в ViewController на основното приложение. locationManager.requestWhenInUseAuthorization() автоматично ще поиска оторизация на потребителя, използвайки стойност за ключ NSLocationWhenInUseUsageDescription във файла info.plist. Но след добавяне на кода към Framework потребителят не получава съобщение за оторизация.   -  person Debasish Mitra    schedule 06.05.2015


Отговори (1)


Най-накрая намерих решение, което работи.

Въпреки че внедряването може да е малко по-различно за вашия сценарий, но погледнете този пример. Благодаря на собственика на проекта.

https://github.com/icanzilb/OneShotLocationManager

person Debasish Mitra    schedule 06.05.2015