2011-12-02 10 views
6

私はiOSプログラミングを初めて学び、loadHTMLString:baseURL:が実際に何を理解しようとしましたが、満足のいく説明が見つかりません。 Appleのサイトでは、次のように述べています。loadHTMLStringとは何ですか:baseURL:

メインページのコンテンツとベースURLを設定します。

誰かが私にこれをより詳細に説明できますか?

答えて

3

主にコンテンツがwebViewに読み込まれる方法です。ローカルhtmlファイルかurlのどちらかを使用します。

//this is to load local html file. Read the file & give the file contents to webview. 
[webView loadHTMLString:someHTMLstring baseURL:[NSURL URLWithString:@""]]; 

//if webview loads content through a url then 
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]] 
+0

ローカルファイルをロードする場合は、@ ""を@ index.htmlに置き換えることができます。右? – MACMAN

4

私はベースURLが適切に相対リンクを使用して参照されressourcesをロードするために、通常のWebページで同じように使用されていることをかなり確信しています。今、問題は、その基本URLをappディレクトリ内の特定のフォルダに設定する方法です。

1
- (void) loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL; 

は、あなたのHTMLファイルが相対パスで、いくつかのhrefタグが含まれている場合、パラメータ文字列は、htmlファイルの内容を意味し、あなたがHTMLファイルのベースアドレスとパラメータbaseUrlを設定する必要があり、ローカルHTMLファイルをロードするために使用されますnilに設定してください。

NSString *cachePath = [self cachePath]; 
NSString *indexHTMLPath = [NSString stringWithFormat:@"%@/index.html", cachePath]; 
if ([self fileIsExsit:indexHTMLPath]) { 
    NSString *htmlCont = [NSString stringWithContentsOfFile:indexHTMLPath 
                  encoding:NSUTF8StringEncoding 
                   error:nil]; 
    NSURL *baseURL = [NSURL fileURLWithPath:cachePath]; 
    [self.webView loadHTMLString:htmlCont baseURL:baseURL]; 
} 

- (NSString *)cachePath 
{ 
    NSArray* cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    return [cachePath[0] stringByAppendingPathComponent:@"movie"]; 
} 
関連する問題