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); function 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 が nil である可能性があり、そのために loadHTMLString が発生しません。

プログラムで _graphHostView を作成する場合、alloc/init がなく、nil である可能性があります

デバッガーを使用して、_graphHostView が nil でないことを確認します。

動作する 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 に答える