1

WebView に問題があります。Html 文字列を Web ビューに読み込んでいます。ベース URL として、自分のサイト URL を使用する必要があります (html 内に相対リンクがあり、変更できないため)。問題は、アプリケーション バンドル内に格納されているいくつかの画像と css も使用する必要があることです。したがって、このコードを使用してローカル リソースへの参照を作成しています (結果の文字列は html ファイルで src として使用されます)。

NSString *cssUrl = [NSString stringWithString:@"file:"]; 
cssUrl = [cssUrl stringByAppendingString:[[NSBundle mainBundle] resourcePath]];
cssUrl = [cssUrl stringByAppendingString:@"/story.css"];

それから私も追加しました:

cssUrl = [cssUrl stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
cssUrl = [cssUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

問題を解決する方法と、Web ビュー内で使用できるファイルへの参照を作成する方法はありますか? ありがとう

フランチェスコ

4

3 に答える 3

0

まず、webすべてのファイルが存在するプロジェクトに、ディレクトリ (たとえば、 という名前のディレクトリ) をインポートします。Xcode から要求されたら、必ず [ Create Group References For Any Folders ]を選択してください。

これで、最初の文字列を 内のファイルに入れた後、次のようにロードできwebますindex.html

NSString* path = [[NSBundle mainBundle] pathForResource:
   @"index" ofType:@"html" inDirectory:@"web"];
if (path) 
   [self.webView loadRequest:
     [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];

などを含め<img>、文字列内のすべての相対ソース URL が期待どおりに機能するようになりました。<a>

于 2012-06-15T14:41:08.703 に答える
0

私がやろうとしていたことは不可能のようです。バンドルされたリソースを使用するには、Web ビューのベース URL をリソース パスに設定する必要があります。ご協力ありがとうございました

フランチェスコ

于 2012-06-25T16:27:16.207 に答える
0

これはどう?

NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"story" ofType:@"css"];
NSURL *url = [NSURL fileURLWithPath:resourcePath];
NSString *theMagicalURLString = [url absoluteString];
于 2012-06-15T15:37:46.860 に答える