UIWebViewでローカルコンテンツを読み込むには?+リソース関連の注意点
UIWebViewでローカルコンテンツを読み込むには次のようにする。リソースにあるindex.htmlを読み込む場合だ。
HTMLを作る場合、多くのケースではイメージを置いておくフォルダ、CSSを置いておくフォルダなど複数のフォルダ階層を作る。例えばこんな感じだ。
public_html/
index.html
css/main.css
img/bg.jpg
しかし、iPhoneのアプリプロジェクトにこのようなpublic_htmlフォルダをインポートすると、プロジェクト上では階層構造を保ってそのままインポートされたかに見えても、アプリのリソースとしてはすべてフラットな階層にコピーされてしまうようだ。
従って、HTMLが読み込まれたときにcssやimg配下への参照がおかしくなり、読み込めないという状況になる。
もうこれは多分どうしようもないので、ローカルコンテンツとして表示させたいHTMLは完全にフラットな階層構造で作るしかないだろう。
NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; NSURL *url = [NSURL fileURLWithPath:path]; NSURLRequest *req = [NSURLRequest requestWithURL:url]; [_webView loadRequest:req];
HTMLを作る場合、多くのケースではイメージを置いておくフォルダ、CSSを置いておくフォルダなど複数のフォルダ階層を作る。例えばこんな感じだ。
public_html/
index.html
css/main.css
img/bg.jpg
しかし、iPhoneのアプリプロジェクトにこのようなpublic_htmlフォルダをインポートすると、プロジェクト上では階層構造を保ってそのままインポートされたかに見えても、アプリのリソースとしてはすべてフラットな階層にコピーされてしまうようだ。
従って、HTMLが読み込まれたときにcssやimg配下への参照がおかしくなり、読み込めないという状況になる。
もうこれは多分どうしようもないので、ローカルコンテンツとして表示させたいHTMLは完全にフラットな階層構造で作るしかないだろう。
インポート時の設定でフォルダ階層保てますよ
返信削除