2

単純なrtfファイルがロードされたUIWebViewがあります。(「これはテストです」という1行を含む)

UIWebView* webview = [[UIWebView alloc] initWithFrame:CGRectMake(5, 50, 310, 400)];
[[self view] addSubview:webview];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"rtf"]isDirectory:NO]]];
NSString *html = [webview stringByEvaluatingJavaScriptFromString: @"all"];
NSLog (@"html:%@", html.debugDescription);

「THISISATEXT」の行がUIWebView内に正しく表示されます。そのテキスト行(またはそれ以上)をNSStringまたは他のアクセス可能なコンテナに抽出することがどういうわけか可能かどうか誰かが知っていますか?

私はあることを知っています:

NSString *html = [webview stringByEvaluatingJavaScriptFromString: @"document.documentElement.outerHTML"];

しかし、それは(明らかに)ここでは機能しません。何か案は ?私は基本的に、iOSでrtfファイルをNSStringに(偽の)変換しようとしています。ありがとうございました!

4

3 に答える 3

5

それがdocument.documentElement.innerText進むべき道であることがわかりました。プレーンテキストをすぐに取得します。

于 2012-06-07T05:25:48.560 に答える
4

UIWebViewからhtmlをフェッチする代わりに、htmlをプレーンテキストに変換するために追加の作業を再度適用する代わりに、以下のコードを直接使用してUIWebViewからテキストコンテンツをフェッチできます。

NSString *plainText = [webView stringByEvaluatingJavaScriptFromString:@"document.body.textContent"];

これにより、htmlをプレーンテキストに変換するための余分な労力を節約できます。

于 2014-02-06T06:47:13.407 に答える
1

私は実際に過去に同じようなことをしなければなりませんでした。おそらく最もエレガントではありませんが、これが私のために働いたものです:

ファイルからHTMLページにテキストをロードします(UIWebView内からjavascriptを使用してこれを行うか、Objective-CからstringByEvaluatingJavaScriptFromStringを使用して呼び出すjavascriptメソッドを作成することでこれを行うことができます)。次に、上記で概説したメソッド呼び出しを実行できます。これは正常に機能するはずです。または、テキストをキャプチャしてObjective-Cコードに返すカスタムメソッドをJavascriptで作成することもできます。ここでは、文字列として保存され、すぐに使用できます。

于 2012-06-07T02:07:25.200 に答える