Poniższy kod jest w stanie uzyskać geolokalizację i ją wydrukować. Mam to na podstawie kilku tutoriali online i oglądania Swift Documents. Chcę przekazać geolokalizacje w postaci ciągów od Swift 2 do Javascript. Jestem w stanie uzyskać GeoLocations, nie wiem jak przekazać te Struny do mojego kodu JavaScript w widoku Web.Przekazywanie geolokalizacji z Swift 2 ViewController do metody Javascript
Poniżej znajduje się kod mam:
@IBOutlet weak var Webview: UIWebView!
let locMgr = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
loadAddressURL()
locMgr.desiredAccuracy = kCLLocationAccuracyBest
locMgr.requestWhenInUseAuthorization()
locMgr.startUpdatingLocation()
locMgr.delegate = self //necessary
}
func locationManager(manager: CLLocationManager , didUpdateLocations locations: [CLLocation]){
let myCurrentLoc = locations[locations.count-1]
var myCurrentLocLat:String = "\(myCurrentLoc.coordinate.latitude)"
var myCurrentLocLon:String = "\(myCurrentLoc.coordinate.longitude)"
print(myCurrentLocLat)
print(myCurrentLocLon)
//pass to javascript here by calling setIOSNativeAppLocation
}
mam JavaScript na mojej stronie z tą metodą:
function setIOSNativeAppLocation(lat , lon){
nativeAppLat = lat;
nativeAppLon = lon;
alert(nativeAppLat);
alert(nativeAppLon);
}
Szukałem w innym pytaniu oznaczonym Pass variable from Swift to Javascript z następującym roztworem:
func sendSomething(stringToSend : String) {
appController?.evaluateInJavaScriptContext({ (context) -> Void in
//Get a reference to the "myJSFunction" method that you've implemented in JavaScript
let myJSFunction = evaluation.objectForKeyedSubscript("myJSFunction")
//Call your JavaScript method with an array of arguments
myJSFunction.callWithArguments([stringToSend])
}, completion: { (evaluated) -> Void in
print("we have completed: \(evaluated)")
})
}
Jednak nie mam appDelegate i chcę bezpośrednio od t jego widok powoduje te zmiany. Dostaję "użycie nierozwiązanego identyfikatora appDelegate".
Po prostu mglisty pomysł ... Czy możesz włączyć lokalną pamięć w widoku sieciowym, a następnie ustawić ją i odczytać później z javascript? –