Swift-WKWebView:Can';调用方法时找不到变量错误
我正在尝试将GPS坐标传递给方法调用Swift-WKWebView:Can';调用方法时找不到变量错误,swift,swift3,wkwebview,Swift,Swift3,Wkwebview,我正在尝试将GPS坐标传递给方法调用setIOSNativeAppLocation。我有以下代码,但我收到了此错误: A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage= ReferenceError: Can't find variable: setIOSNativeAppLocation, WKJavaScriptExceptio
setIOSNativeAppLocation
。我有以下代码,但我收到了此错误:
A JavaScript exception occurred"
UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=
ReferenceError:
Can't find variable: setIOSNativeAppLocation, WKJavaScriptExceptionSourceURL=
http://mywebsite.com, NSLocalizedDescription=
A JavaScript exception occurred, WKJavaScriptExceptionColumnNumber=24})
我不确定这是否与语法或其他方面有关。如果有人知道我做错了什么,我会非常感激
我认为这可以帮助您解决问题——我们在这里传递参数的方式 我们应该把它放在单引号(“\(lat)”,\(lon))中,否则它就像一个变量
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
if(myCurrentLoc != nil){
let lat = myCurrentLoc.coordinate.latitude
let lon = myCurrentLoc.coordinate.longitude
print(lat);
print(lon);
webView.evaluateJavaScript("setIOSNativeAppLocation('\(lat)', '\(lon)');") { (result, error) in
guard error == nil else {
print("there was an error")
print(error)
return
}
}
}
}
你解决了这个问题吗?@San这与调用此方法时没有加载所有javascript文件有关。我只是使用了一个局部变量来存储lat和lon。如果你想在加载后执行,你需要添加一个观察器。这可能会有帮助,谢谢你的信息。我和你有类似的要求,需要将一些数据从native发送到angular js web应用程序。我通过像你说的那样声明全局变量来修复它。var updateAccessKey=function(accessKey){console.log(“从本机应用程序生成”+accessKey);}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
if(myCurrentLoc != nil){
let lat = myCurrentLoc.coordinate.latitude
let lon = myCurrentLoc.coordinate.longitude
print(lat);
print(lon);
webView.evaluateJavaScript("setIOSNativeAppLocation('\(lat)', '\(lon)');") { (result, error) in
guard error == nil else {
print("there was an error")
print(error)
return
}
}
}
}