My method is called:
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print("message.body: \(message.body)")
if let messageBody = message.body as? [String: Any] {
print("messageBody: \(messageBody)") //this is not triggered
if let data = messageBody["data"] as? NSString {
print("DATA: \(data)")
}
}
The message body is:
message.body: {"type":3,"data":"{\"title\":\"Verzamelen\",\"content\":\"Loongegevens...\"}"}
But after that I'm not able to retrieve the "data" field. What am I missing?
The issue was probably related to the backslash escapes in the String . What worked is decoding it with JSON decoder: