0

ローカルの html コンテンツを uiwebview に読み込もうとしています。私はすでに html コンテンツの準備ができており、以下のコードに示すように、メカニズムによってオンライン css ファイルの参照をコンテンツに追加しています。ただし、私が直面している問題は、webview をロードするときにスタイリングがないことです。また、Charles Proxy で確認したところ、iphone.css ファイルをベース サーバーに取得するための発信呼び出しはありません。理想的には、html ページをロードしている間、uiwebview は参照されているすべてのリソースを取得する必要がありますが、何らかの理由で、css ファイルをフェッチしていません。

ここで特定できない問題がコードにある場合は、確認してお知らせください。

NSString* htmlString = @"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"he\" lang=\"he\"><head><link type=\"text/css\" href=\"http://<base_server>/resources/iphone.css\" /><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /></head><body>%@</body></html>";


        UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
        NSLog(@"%@",[NSString stringWithFormat:htmlString,entry.body]);
        [webview loadHTMLString:[NSString stringWithFormat:htmlString,entry.body] baseURL:[NSURL URLWithString:@"http://<base_server>/"]];

        [self addSubview:webview];
4

1 に答える 1

2

HTMLにタイプミスがあり、その文字列ですべての二重引用符がエスケープされているかどうかを判断するのは困難です。HTMLを文字列からファイルに取り出し、そのファイルを読み込んで、コンテンツを本文に配置してみませんか。その文字列のマークアップに誤りがある可能性があります。これにより、別のファイルで読みやすくなります。

何かのようなもの:

NSError *error;
NSStringEncoding encoding;
NSString *htmlFilePath = [[NSBundle mainBundle] pathForResource: @"Sample" 
                                                         ofType: @"html"];
NSString *htmlString = [NSString stringWithContentsOfFile:htmlFilePath 
                                             usedEncoding:&encoding 
                                                    error:&error];

NSString *html = [NSString stringWithFormat:htmlString, entry.body];

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];

[webview loadHTMLString:html baseURL:baseURL];
于 2013-03-11T13:10:27.323 に答える