我正在尝试将数组从xcode传递到我的本地html。基本上我在html中使用Jquery,所以使用loadHTMLstring:
和baseURL
来阅读HTML以及包含的.js文件。现在我在使用stringByevaluatingjavascriptfromstring
加载webview时遇到了问题。代码是:
NSString *java=[NSString stringWithFormat:@"javafunction('%@');",json];
[webView loadHTMLString:content baseURL:baseURL];
[webView stringByEvaluatingJavaScriptFromString:java];
在我正在使用的HTML中:
function javafunction(inp) {
var arr=newArray();
arr='inp';
alert(arr[0]);
}
答案 0 :(得分:0)
我认为
var arr=newArray();
arr='inp';
应该是
var arr = new Array();
arr[0] = inp;
将数组的第零个元素设置为字符串'inp'
或
var arr = [inp];
使用缩写数组语法 甚至
var arr = new Array();
arr.push('inp');
使用Array
的{{1}}方法将输入参数push
添加到数组的末尾。
inp
可能只会导致newArray
之类的错误,而newArray is not defined
会用字符串替换数组而不是将字符串放入数组中。
编辑:
arr='inp'
可能不是你想要的。如果[NSString stringWithFormat:@"javafunction('%@');",json]
是JSON编码的字符串,那么您可能想要删除单引号。如果它不是JSON编码的字符串,那么您可能希望对其进行JSON编码。
这可能是一个小问题,但您还应该注意并非所有JSON字符串都是有效的JavaScript表达式,因为JSON允许字符串中的unicode代码点U + 2028和U + 2029,但该代码点是JavaScript中的换行符。即JavaScript表达式json
因异常而失败。