问题描述
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)")
}
}
邮件正文是:
message.body: {"type":3,"data":"{\"title\":\"Verzamelen\",\"content\":\"Loongegevens...\"}"}
但在那之后我无法检索“数据”字段。我错过了什么?
解决方法
该问题可能与 String 中的反斜杠转义有关。有效的是使用 JSON 解码器对其进行解码:
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(new NetHttpTransport(),new GsonFactory())
.setAudience(Arrays.asList(CRLConstants.IOS_CLIENT_ID,CRLConstants.ANDROID_CLIENT_ID_RELEASE,CRLConstants.ANDROID_CLIENT_ID_DEBUG))
.setIssuer("accounts.google.com")
.build();