【问题标题】:I wanted to pass an array from xcode to local html我想将数组从 xcode 传递到本地 html
【发布时间】:2011-11-16 16:54:48
【问题描述】:

我正在使用包含多个对象的 NSMutable 数组,并且我知道如何使用 loadHTMLstring 在 Webview 中定位和加载本地 HTML。 只是想知道如何将数组传递给 HTML。

非常困惑。 提前致谢。

【问题讨论】:

  • 我不明白你的问题。数组中有什么?
  • 基本上我是从 Sap 后端获取数据,并通过 SUP 在 array 中导入。数组中的数据是 firefox,Chrome,IE,Netscape..
  • Ummm... dasdom 提出的问题,我认为这是一个很好的问题,如果你这样做NSLog(@"contents of array is %@", [yourMutableArray description]);,控制台日志中会出现什么?如果它只是 NSString 对象,那么你已经准备好了……如果它是一些疯狂的抽象类型或 JSON 或 XML 或其他任何东西,那么你还有更多工作要做。
  • Micheal 它只是一个 NSString 对象,在 HTML 中加载时我不能使用 stringByreplacingoccurenceofstring

标签: iphone html arrays uiwebview


【解决方案1】:

您可以通过调用 UIWebView stringByEvaluatingJavascriptFromString: 将数组作为 JSON 字符串传递给加载页面内的 JavaScript。

首先,使用 JSON 库将数组的内容编码为 JSON 编码的字符串。如果你使用SBJSON,那么是这样的:

NSString* json = [myArray JSONRepresentation];

(这将适用于您的简单字符串数组。如果您有更复杂的其他对象数组,它们必须与 JSON 序列化程序兼容)

然后,将其传递给您的 webview:

NSString* js = [NSString stringWithFormat: "myJavaScriptFunction( '%@' );", json];
[myWebView stringByEvealuatingJavascriptFromString: js];

在您的 HTML 文件中,您必须实现一个 JavaScript 函数(在本例中为“myJavaScriptFunction”),该函数接受传递的 JSON,并将其解码为 Javascript 数组。

【讨论】:

  • 嗨,汤姆,已经尝试过您的方法但没有成功,如果有任何修改,请提出我的代码。
  • 试过你的方法但没用。你能从我的代码中提出一些建议吗:SBJsonWriter *js = [SBJsonWriter new]; pie_arr1 = [SBJsonWriter 新]; NSString *json = [js stringWithObject:self.pie_arr1]; NSString *htmlPath = [[NSBundle mainBundle]pathForResource:@"index" ofType:@"html"]; NSString *content = [NSString stringWithContentsOfFile:htmlPath encoding:NSASCIIStringEncoding error:NULL];NSString *java=[NSString stringWithFormat:@"javafunction('%@');",json]; [webView stringByEvaluatingJavaScriptFromString:java]; [webView loadHTMLString:content baseURL:baseURL];
  • 我真的无法看到并确定任何事情。我对您的建议是使用调试器检查每一步发生的情况。 JSON 是您所期望的吗?它是否到达 html 页面(使用 alert() 或其他东西......)等。
  • m 能够生成 JSON,但由于 m 使用带有 baseURL 的 loadHTMLstring 加载本地 HTML 并包含 .js 插件(在我的 HTML 中),m 无法再次使用 stringByevaluatingjavascriptfromstring 加载我的 webview,这意味着无法通过我的数组到javascript。代码是:'NSString *java=[NSString stringWithFormat:@"javafunction('%@');",json];' [webView loadHTMLString:content baseURL:baseURL]; [webView stringByEvaluatingJavaScriptFromString:java];并在我的 HTML m 中使用函数 javafunction(inp) {var arr=newArray(); arr='输入';警报(arr[0]);}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 2019-03-28
相关资源
最近更新 更多