栄養表示のように見えるようにビルドされたローカルHTML/CSSでUIWebViewをロードしようとしています。問題は、食べ物のデータが私のiPhoneアプリの中にあることです。私はすべてのHTMLを1つの巨大なNSStringオブジェクトに入れてデータを連結しなければならないのか、ローカルの.htmlファイルからHTMLをロードする方法があるのですが、Objective-それにC?Objective-CデータをローカルHTMLファイルをロードするUIWebViewに「注入」しますか?
0
A
答えて
2
:
コードは次のようなもの(使用して、このexample)になります%@
マーカーを使用し、stringWithFormat:
を使用して1回の移動で注入を実行します。これは、TidBITS Newsアプリのページを、RSSから来たものを使って構築する方法です。それは本当にかなり痛いです。
1
NSDataのdataWithContentsOfFileメソッドを使用して基本HTMLを読み込み、必要に応じてjavascriptを使用してhtmlを変更できます。データは「安全」されて注入される場合はを振りかけ、フォーマット文字列として、あなたの「巨大なNSStringのオブジェクト」を構築することができ、
NSString *path = [[NSBundle mainBundle] pathForResource:@"food" ofType:@"html"];
NSData *data = [NSData dataWithContentsOfFile:path];
if (data) {
[webView loadData:data MIMEType:@"text/html" textEncodingName:@"UTF-8"];
}
[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function myFunction() { "
"var field = document.getElementById('field_3');"
"field.value='Calling function - OK';"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"];
[webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];
0
私は両方のハイブリッドを行う - あなたが読み込んだアプリケーションのHTMLファイルを持っているし、UIWebViewに与える前にその中の特定の文字列を置き換えてください。たとえば、あなたがこの
<html>
<head>
<title><!--foodName--></title>
</head>
<body>
<h1><!--foodName--></h1>
<p>Calories/100g: <!--foodCalories--></p>
</body>
</html>
のようなファイルを持っている可能性がありますので、あなたがしたい実際の値とあなたの特別なプレースホルダのコメントを置き換え、ココアの中にそれをロードすると思います。
NSDictionary *substitutions = [NSDictionary dictionaryWithObjectsAndKeys:
@"Carrots", @"foodName",
[NSNumber numberWithInt:20], @"foodCalories",
// add more as needed
nil];
NSMutableString *html = [NSMutableString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"foodCard" ofType:@"html"]
encoding:NSUTF8StringEncoding
error:nil];
for(NSString *substitutionKey in substitutions)
{
NSString *substitution = [[substitution objectForKey:substitutionKey] description];
NSString *searchTerm = [NSString stringWithFormat:@"<!--%@-->", substitutionKey];
[html replaceOccurrencesOfString:searchTerm withString:substitution options:0 range:NSMakeRange(0, [html length])];
}
[webView loadHTMLString:html baseURL:[[NSBundle mainBundle] resourceURL]];
0
iOSの2ので、あなたのWebViewでJSスクリプトを実行するためのUIWebViewサブクラス内- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
を使用することができます。これは、アプリケーションの「Objective-C」部分からデータを注入するための最良の方法です。
関連する問題
- 1. UIWebviewのローカルhtmlファイルのロード
- 2. HTMLをUIWebviewにロードする
- 3. ローカルHTMLファイルをHTMLファイルにロード、インポートまたはインクルードする
- 4. ローカルHTMLファイルをPysideにロードするQwebView
- 5. UIWebViewローカルファイルシステムからHTMLファイルをロード
- 6. UIWebViewでローカルHTMLファイルを読み込む
- 7. UIWebViewにローカルCSSを挿入する
- 8. JavaScriptをUIWebViewに注入
- 9. ナビゲーションベースのアプリケーションにローカルHTMLファイルをロード
- 10. ローカルHTMLファイルをプロジェクトのmy.resourcesからWebBrowserコントロールにロードする - vb.net
- 11. iPhoneのPhonegapにローカルHTMLコードを注入するwebapp
- 12. ドラッグしてデータをローカルにロードする
- 13. UIwebviewのCSS注入
- 14. 入力データをファイルに保存してファイルからロードする
- 15. Android WebView:本体を無視してローカルHTMLファイルをロードする
- 16. ローカルJSONファイルのデータをjavascriptにロード
- 17. commonmark.jsをローカルHTMLファイルにロードするには?
- 18. Safari App ExtensionにローカルHTMLファイルをロードするには
- 19. SQLiteデータベースからuiwebviewにHTMLファイルを表示しますか?
- 20. バンドルからUIWebViewに異なるHTMLをロードする
- 21. asp.netのdivにローカルHTMLをロードする
- 22. XamarinフォームのローカルWebブラウザにローカルHTMLファイルをロード
- 23. iframeにローカルHTMLをロード
- 24. android webviewローカルjavascriptファイルを使用してリモートHTMLファイルをロード
- 25. UIWebViewでローカル(OfficeおよびiWork)ファイルをロードするときのメモリスパイクの制御
- 26. ローカルからのUIWebviewを使用してrtfとpdfをロードする
- 27. WKWebviewはローカルHTML/CSSSファイルをロードしていません
- 28. htmlファイルにローカルpdfファイルをリンクするにはどうすればいいですか?htmlファイルはUIWebViewに表示されます
- 29. NSWをUIWebViewにロードする
- 30. URLをuiwebviewにロードする
ええ、私は 'stringWithFormatを使用することを計画していた:'、私はちょうど私がする必要はありませんでした望みます。私がHTMLを圧縮すると、それほど大きなものではないので、私はそれが私の行くべきことだと思う。 –