iOSでローカルHTML/js/css/imageをロードするなどのパスの問題

982 ワード

1つはCreate groups for any added folders(仮想構造-パッケージ構造の作成)1つはCreate folder references for any added folders(エンティティ構造の作成)
前者を選択すると、アプリのコンパイル後に導入されたファイルが同じフォルダの下に置かれると、元のフォルダは無視されます.そのため、HTMLファイルのパスに問題が発生します.前者を選択した場合、HTMLファイルにCSS、js、ピクチャなどを導入してプレフィックスパスを追加する必要がなくなり、直接ファイル名を書けばいいのです.ファイルの導入方法:
NSString * htmlPath = [[NSBundle mainBundle] pathForResource:@"aboutAs" ofType:@"html"];
NSString * htmlString = [NSString stringWithContentsOfFile:htmlPath encoding:NSUTF8StringEncoding error:nil];
NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]];
[webView loadHTMLString:htmlString baseURL:baseURL];

後者を選択すると、APPのコンパイル後に導入されたファイルが元のディレクトリ構造で保存されます.この場合、相対パスを追加する必要があります.ファイルの導入方法:
NSURL *url = [NSURL URLWithString:@"aboutAs/aboutAs.html" relativeToURL:[[NSBundle mainBundle] bundleURL]];
NSURLRequest *request = [NSURLRequest requestWithURL:url] ;
[webView loadRequest:request];