2011-12-20 26 views
15

私はiOS初心者です。私は、定数に指定されているものに応じて、ローカルHTMLリソースファイルまたはWebページからコンテンツをロードする関数を用意したいと思います。私はそれをどうやってやりますか?たとえば、file:// ...を関数またはhttp:// ...に渡すと、それに応じてレンダリングする必要があります。iOS - htmlリソースファイルまたはリモートWebページのコンテンツをWebビューで表示

答えて

35

あなたは簡単にこのようなWebページをロードすることができます:それはあなたのデバイス上のファイルの場所に依存してローカルファイルの場合

NSURLRequest *request = [NSURLRequest requestWithURL: 
    [NSURL URLWithString:@"http://stackoverflow.com"]] ; 

[webView loadRequest:request] ; 

:あなたのメイン・バンドル(=プロジェクト)内のファイルの 、することができます

:あなたのWebViewにHTML文字列をロードする場合

NSString *localFilePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"] ; 
NSURLRequest *localRequest = [NSURLRequest requestWithURL: 
    [NSURL fileURLWithPath:localFilePath]] ; 

[webView loadRequest:localRequest] ; 

をしてます。同じloadRequest機能を使用しますが、異なったパスを構築

NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; 
NSURL *baseURL = [NSURL fileURLWithPath:bundlePath]; 

NSString *htmlString = [bundlePath pathForResource:@"index" ofType:@"html"] ; 
[webView loadHTMLString:htmlString baseURL:baseURL]; 

とあなたのhtmlファイルは、アプリケーション(ダウンロードした例えばHTMLファイル)のドキュメントフォルダに存在する場合:詳細な回答のため

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask ,YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"index.html"]; 
NSURLRequest *documentsRequest = [NSURLRequest requestWithURL: 
    [NSURL fileURLWithPath:path]] ; 

[webView loadRequest:documentsRequest] ; 
+0

ありがとう! – Suchi

+0

この件に関するベストアンサー私はこれまで見てきました、ありがとうございます。 –

+1

私のHTMLファイルに、HTMLファイルと一緒にアプリに保存されているいくつかのCSSファイルへの参照がある場合はどうなりますか? htmlページを正しく表示するには、どのように適切な参照を付けてそれらのファイルにアクセスしますか? – slonkar

関連する問題