使用SBJason将数组从xcode传递到javascript时出现问题

使用SBJason将数组从xcode传递到javascript时出现问题,javascript,iphone,uiwebview,Javascript,Iphone,Uiwebview,我试图将数组从xcode传递到本地html。基本上,我在html中使用Jquery,以便使用loadHTMLstring:和baseURL读取html以及包含的.js文件。现在,我在使用stringByevaluatingjavascriptfromstring加载webview时遇到了一个问题。代码是: NSString *java=[NSString stringWithFormat:@"javafunction('%@');",json]; [webView loadHTMLString:

我试图将数组从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]);
}
我想

var arr=newArray(); 
arr='inp'; 
应该是

var arr = new Array(); 
arr[0] = inp;
它将数组的第0个元素设置为字符串
'inp'

var arr = [inp];
它使用缩写数组语法 甚至

它使用
Array
push
方法将输入参数
inp
添加到数组的末尾

newArray
可能只会导致错误,如
newArray未定义
,而
arr='inp'
将用字符串替换数组,而不是将字符串放入数组中

编辑:

这可能不是你想要的。如果
json
是一个json编码的字符串,那么您可能需要删除单引号。如果它不是JSON编码的字符串,那么您可能希望对其进行JSON编码


这可能是一个小问题,但您还应该注意,并非所有JSON字符串都是有效的JavaScript表达式,因为JSON允许字符串中的unicode代码点U+2028和U+2029,但该代码点在JavaScript中是一个换行符。也就是说,JavaScript表达式
eval(JSON.stringify(“\u2028”)
异常失败。

var arr=newArray()您的代码中出现了什么,或者您是否在
var arr=new/*NOT space HERE*/Array()中有空格
我认为'inp'不是一个字符串,而是一个变量,因此,可能正确的形式应该是
arr[0]=inp@Sylter,很可能。Rehan,这是你的意图吗?@Mike Samuel我明白你在javascript方面想说什么。但我想知道,自从我第二次加载webview以来,数组“json”是否从xcode传递过来time@rehan,请参阅我的编辑。此外,变量名
java
在用作
javascript
的缩写时容易混淆。
var arr = new Array();
arr.push('inp');
[NSString stringWithFormat:@"javafunction('%@');",json]