yo_waka's blog

418 I'm a teapot

UIWebViewでローカルのHTMLを扱うときにハマったこと

ちょいいくつかハマったので。


UIWebviewでローカルHTMLを読み込んでJSを実行しようとしても実行されないときがある

ローカルコンテンツでもUIWebViewDelegateのwebViewFinishLoadでJavaScriptを実行しないと、確実にHTMLのロード後にJSを実行できない。


ローカルで読み込んだJS,CSSファイルのパスの設定の仕方

シミュレータにインストールされるアプリを見てみると、パッケージディレクトリの直下に展開されるよう。
XCode4.5では以下のような指定でおkでした。

NSString *path = [[NSBundle mainBundle] pathForResource: @"foobar" ofType: @"html"];
[webView loadRequest: [NSURLRequest requestWithURL: [NSURL fileURLWithPath: path]]];

あとはHTML内で

<link rel="stylesheet" type="text/css" href="./main.css" />
<script type="text/javascript" src="./application.js"></script>

相対パスでURL指定すれば読み込めます。