[英]I want to pass JSON data to javascript function related to web view. But I am unable to get the response data from the Javascript function
When printing 'b' value, I am getting empty. 打印'b'值时,我变空了。 Means the data I have sent was wrong.
意味着我发送的数据是错误的。
Am I doing anything wrong? 我做错了吗?
Here is my code : 这是我的代码 :
Swift 4.0 Swift 4.0
let inputPayload: Dictionary = ["wellname": ["answer": "firstName"]]
if JSONSerialization.isValidJSONObject(inputPayload) {
do {
let rawData =
try JSONSerialization.data(withJSONObject: inputPayload, options: [])
let b = webView.stringByEvaluatingJavaScript(from: "downloadComplete(\(rawData))") !
print(b)
} catch {
}
}
This is my Javascript function 这是我的Javascript函数
function downloadComplete(a) {
return a.wellname.answer
}
Objective-c Objective-C的
- (void)runJavaScriptCallback:(NSString *) jsonString {
NSString *exec_template = @"downloadComplete(\'%@\');";
NSString *exec = [NSString stringWithFormat:exec_template, jsonString];
[webView evaluateJavaScript:exec completionHandler:nil];
}
Swift 4 斯威夫特4
func runJavaScriptCallback(jsonString: String) {
webView.evaluateJavaScript("downloadComplete(\(jsonString))") { result, error in
guard error == nil else {
print(error)
return
}
}
}
Javascript 使用Javascript
var downloadComplete = (bridgeMsg) => {
// escape newline character from iOS sdp
bridgeMsg = bridgeMsg.replace(/\r?\n|\r/g, '\\r\\n');
const msg = JSON.parse(bridgeMsg);
// do whatever you want with the parsed json object
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.