UIWebViewを使ってある特定のURLを表示することはできたのですが、問題は、ローカルファイルを出力する場合。
プログラム内で動的に生成するなど、HTML が文字列の場合は、下記のように、baseURL 引数にリソースバンドルのパスを指定します。
via:UIWebView を使ってリソースバンドル内の HTML ファイルで、外部 JavaScript や CSS を読み込む
[webView loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
ここでポイントとなるのは、baseURLの使い方。
[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]] |
を使うことで、baseURLで指定されているのは、Resourceグループ(画像はフォルダになっている)になっているのですが、
例えば、
Resourceグループの中に、testフォルダがあって、その中に、index.htmlファイルなどがあった場合だと上の方法だと若干不足でもうちょい処理を追加する必要があります。(フォルダ構成はちょうど下のような感じ)
Resource--test |
baseURLを下のように設定します。(下記の例では、– loadData:MIMEType:textEncodingName:baseURL:メソッドを使っています。)
[tempWebView loadData:webData MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:[NSURL fileURLWithPath:[ [[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"test"]] ]; |
[[NSBundle mainBundle] bundlePath]のところまでは先ほど同じで、違うところは、さらに、stringByAppendingPathComponentでパス先にあたるtestを追加し、改めてNSURLに変換しているところ。
こうすることで、フォルダの中にファイルがあってもhtmlを出力することができます。
他に参考にしたサイト
How can I access local html file using UIWebView
Tweet
0 コメント:
コメントを投稿