我有一个需求,需要让
Objective C代码
调用WebService
,并将以JSON格式
接收到的响应作为参数传递给Javascript
方法进行进一步处理。我正在使用UIWebView
,它将在处理JSON响应
后显示适当的结果。
问题出现在当我尝试将JSON字符串传递给Javascript
方法时。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]];
}
我有什么遗漏的吗?使用相同的方法可以正确传递简单的字符串。
更新:
将 responseData
编码为 UTF8StringEncoding
就解决了问题。
[theResponse stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]
unescape()
函数了吗?它应该可以工作,只需使用unescape(your_escaped_json_string)
。 - uvesten