RTFファイル(電子メール添付ファイルなど)を開くことができるように自分のApp(リッチテキストエディタ)を宣言しました。アプリケーションデリゲートは、ユーザーが添付ファイルを選択すると、UiwebViewコントローラに「loadContent:(NSURL *)url」メッセージを送信します。受信機では、私はURLを取得し、それを行うUIWebViewでRTFファイルをインポートする(コンテンツ編集可能)
- (void) loadContent: (NSURL *) passedURL
{
if (passedURL) {
[self.myWebView loadRequest:[NSURLRequest requestWithURL:passedURL]];
} else {
NSBundle *bundle = [NSBundle mainBundle];
NSURL *indexFileURL = [bundle URLForResource:@"index" withExtension:@"html"];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:indexFileURL]];
}
}
使用のUIWebViewでRTFファイルをロードし、すべてがすべての権利、および「myWebView」になるRTFファイルの内容を表示します。問題は、このビューはコンテンツ編集可能でなければならず、コードには "index.html"バンドルファイルにあるjavascriptが含まれている必要があります。アプリケーションを起動するときに読み込まれます。だから私はそのようなタグで抽出されたコードを挿入し、完全なコードを再作成するために後でできるようにRTFファイルから作成されたHTMLコードを抽出するためにいくつかのコードを追加:
<div id="content" contenteditable="true"> imported html from rtf should be there</div>
私はそれを得るためにloadContent方法を変更しました。 NSLogの結果を見ると
- (void) loadContent: (NSURL *) passedURL
{
if (passedURL) {
[self.myWebView loadRequest:[NSURLRequest requestWithURL:passedURL]];
NSString *dum=[self.myWebView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML;"];
NSLog(@"%@",dum);
} else {
NSBundle *bundle = [NSBundle mainBundle];
NSURL *indexFileURL = [bundle URLForResource:@"index" withExtension:@"html"];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:indexFileURL]];
}
}
、私は前myWebView のHTMLコンテンツだっただけで、次のHTML
<div id="content" contenteditable="true">Hello folks</div>
を取得し、私は...
をRTFファイルをロードあなたは何が起こっているの任意のアイデアを持っていますか? dumは、表示されているmyWebViewに新しいコードが表示されるため、元のコードが表示されるのはなぜですか?それは、loadRequestが分離されたスレッドで実行され、次の命令を実行するときに、myWebViewには以前のコードが含まれているからですか?
おかげ
[EDITED]私もwebViewDidFinishLoad中のWebViewのコンテンツのNSLogしようとした:デリゲートメソッドを、同じ結果を得る:このWebViewの内容を私はRTF形式の添付ファイルを開く前に。同期的な方法でロード要求を行うことは可能ですか?
ありがとうございました。私はwebViewDidFinishLoadでそれを行いましたが、同じ結果が得られます... – Denis
あなたは今持っているもので質問を更新できますか? –
私はすでにそれをやった! – Denis