我有一个要求objective C code should
消耗WebService
以及收到的答复JSON format
必须作为参数传递给javascript
进一步处理的方法。我正在使用UIWebView
处理后会显示相应的结果JSON response.
当我尝试将 JSON 字符串传递给Javascript
method.Javascript方法并不简单地接受输入。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSString *responseString = [[NSString alloc] initWithBytes:[resultData bytes] length:[resultData length] encoding:NSUTF8StringEncoding];
NSLog(@"%@",responseString);
[self returnResponseToJavaScriptMethods:responseString];
}
-(void)returnResponseToJavaScriptMethods:(NSString*)theResponse{
[viewMainWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"retrieveServerResponse('%@')",theResponse]];
}
我有什么遗漏的吗?使用相同的方法可以正确传递简单的字符串。
UPDATE:
编码responseData
to UTF8StringEncoding
成功了。
[theResponse stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]
在将 JSON 字符串发布到 javascript 之前,您可能需要对其进行 URL 转义。
尝试改变:
-(void)returnResponseToJavaScriptMethods:(NSString*)theResponse{
[viewMainWebView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:@"retrieveServerResponse('%@')",theResponse]];
}
to
-(void)returnResponseToJavaScriptMethods:(NSString*)theResponse{
[viewMainWebView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:@"retrieveServerResponse('%@')",
[theResponse stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
}
看看这是否对你有帮助。但请注意,有更好(或更可靠)的方法来转义字符串,例如此答案中给出的方法:如何对字符串进行 URL 编码 https://stackoverflow.com/questions/8088473/url-encode-a-nsstring
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)