2013-07-10 85 views
0

我必須創建一個UIWebview,將我從API獲得的一些數據添加到本地的HTML文件中。這是我第一次這樣做,我無法找到如何做到這一點。合併HTML文件到UIWebView

我的HTML文件看起來像:

<h1>%%%title%%%</h1> 
     <p class="date">%%%date%%%</p> 
     <a %%%hrefimage%%% class="link-diapo"> 
      <div class="image"> 
       <img src="%%%img%%%" alt="%%%title%%%"/> 
       %%%diapo%%% 
      </div> 
     </a> 
     <div id="content" style="font-size:%%%size%%%px;"> 
      <p>%%%chapo%%%</p> 
      <p>%%%html%%%</p> 
      <p class="source">%%%author%%%</p> 
     </div> 

和我的數據:

 "title": "My title", 
     "date": "2013-07-10", 
     "hour": "19h45", 
     "chapo": "blablabla", 
     "author": "Me", 
     "description": "html text" 
... 

有沒有做到這一點很容易的方法?或者我必須在HTML文件中檢測%%%?

Thx!

回答

1

如果你有你在一個NSString初始HTML,你可以使用stringByReplacingOccurrencesOfString:withString :,像

NSError *error; 
NSString *initialHTMLString = [NSString stringWithContentsOfFile:(your file path) encoding:NSUTF8StringEncoding error:&error]; 

//do something to get the data back from the api, I'll assume NSData w/ JSON formatting 
NSDictionary *jsonDic = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil]; 
NSString *titleString = [jsonDic objectForKey:@"title"]; 

NSString *HTMLStringWithTitleAdded = [initialHTMLString stringByReplacingOccurencesOfString:@"%%%title%%%" withString:titleString]; 

然後,您將需要重複類似的東西每個你得到回關鍵數據來自API。

1

您可以使用Mustache模板引擎將字典的值注入標記。

實際加載的標記串入UIWebView你會做類似如下:

NSURL * URL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]] 
[self.webView loadHTMLString:markup baseURL:URL];