'evaluateJavaScript never called in webview in swiftui
I am trying to call a function in my javascript file using evaluateJavaScript from webkit in swiftui. But it seems that that function is never called and it throws error:
Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=ReferenceError: Can't find variable: retrieveChartData, WKJavaScriptExceptionColumnNumber=18, WKJavaScriptExceptionSourceURL=undefined, NSLocalizedDescription=A JavaScript exception occurred}
My code is :
import SwiftUI
import WebKit
struct WebView: UIViewRepresentable {
var url: URL
var ticker: String
func makeCoordinator() -> WebView.Coordinator {
Coordinator(self)
}
func makeUIView(context: Context) -> WKWebView {
let view = WKWebView()
view.navigationDelegate = context.coordinator
return view
}
func updateUIView(_ uiView: WKWebView, context: Context) {
print("send ticker \(ticker)")
uiView.evaluateJavaScript("retrieveChartData(\(ticker))") { result, error in
guard error == nil else {
print(error!)
return
}
}
print("loading")
uiView.load(URLRequest(url: url))
}
class Coordinator: NSObject, WKNavigationDelegate {
let parent: WebView
init(_ parent: WebView) {
self.parent = parent
}
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("send ticker \(ticker)")
webView.evaluateJavaScript("retrieveChartData(\(ticker))") { result, error in
guard error == nil else {
print(error!)
return
}
}
}
}
Any suggestion?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
