0

我需要在我的 IOS 应用程序中加载一个 HTML,但我需要它是一个可编辑的 HTML,所以我的方法如下:

我创建了一个带有格式的 NSString,因此我可以根据一些变量使用 HTML 代码创建一个字符串:

NSString *googleGraphCode = [NSString stringWithFormat:@""<"html>"<"body>"<"div id=\"%@\">"<"/div>"<"script type=\"%@\ " src=\"%@\"> google.load('visualization', '1.0', {'packages':['corechart']}); google.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); %@ data.addRows([%@]); var options = {'title':'%@', 'width':%i, 'height':%i}; var chart = new google.visualization.PieChart(document.getElementById('%@')); chart.draw(data, options); }"<"/script>"<"/body>"<"/html>" , chartID、javaScriptCall、AJAX_Api、javaScriptCall、列、行、标题、宽度、高度、图表ID];

然后我用 HTMLString 加载了 webView:

[_graphHostView loadHTMLString:googleGraphCode baseURL:nil];

我得到了 NSLog 中的代码,我得到了这个:

"<"html>"<"body>"<"div id="chart_div">"<"/div>"<"script type="text/javascript" src="https://www.google.com/ jsapi">"<"script type="text/javascript"> google.load('visualization', '1.0', {'packages':['corechart']}); google.setOnLoadCallback(drawChart); 函数 drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Tipo'); data.addColumn('string', 'CantidadGasto'); data.addRows([['Gastos', 30000], ['Ingresos', 50000]]); var options = {'title':'Su gráfica de balance:', 'width':320, 'height':300}; var chart = new google.visualization.PieChart(document. getElementById('chart_div')); chart.draw(数据,选项);}"<"/script>"<"/body>"<"/html>

但是设备上的 webView 没有显示任何内容。

注意:我在 html 代码之前使用了“<”,所以 Stackoverflow 在问题上显示了它,所以“<”html> = 常规 html 开始。

4

1 回答 1

0

loadHTMLString 是让 webview 加载 html 的正确方法

问题可能是 _graphHostView 为零,因此不会发生 loadHTMLString。

如果以编程方式创建 _graphHostView,则可能缺少 alloc/init 并且为 nil

使用调试器检查 _graphHostView 不为零。

工作 html 的示例:

NSString *styledHTML = [NSString stringWithFormat:@"<html> \n"
                                "<head> \n"
                                "<style type=\"text/css\"> \n"
                                "body {font-family: \"%@\"; font-size: %@;\n"
                                "background-color:#EEEEEE;}\n"
                                "</style> \n"
                                "</head> \n"
                                "<body bgcolor =0xEEEEEE >%@</body> \n"
                                "</html>", @"Museo Sans", [NSNumber numberWithInt:12], helpResponse.Content];


[contentView loadHTMLString:styledHTML baseURL:nil];

NSString 也可能过度使用引号 ("")

于 2013-10-09T18:10:29.563 回答