gpt4 book ai didi

javascript - 如何将包含 JSON 的 JSON NSString 从 Objective C 方法传递给 Javascript 方法

转载 作者:可可西里 更新时间:2023-11-01 05:45:49 28 4
gpt4 key购买 nike

我有一个要求, 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]

最佳答案

您可能需要在将 JSON 字符串发布到 javascript 之前对其进行 URL 转义。

尝试改变:

-(void)returnResponseToJavaScriptMethods:(NSString*)theResponse{
[viewMainWebView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:@"retrieveServerResponse('%@')",theResponse]];
}

-(void)returnResponseToJavaScriptMethods:(NSString*)theResponse{
[viewMainWebView stringByEvaluatingJavaScriptFromString:
[NSString stringWithFormat:@"retrieveServerResponse('%@')",
[theResponse stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
}

看看这是否对您有帮助。但是请注意,有更好(或更可靠)的方法来转义字符串,例如此答案中给出的方法:How do I URL encode a string

关于javascript - 如何将包含 JSON 的 JSON NSString 从 Objective C 方法传递给 Javascript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14198331/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com