0

我必须通过将从我的 API 获取的一些数据添加到我在本地拥有的 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 文件中的 %%% ?

谢谢 !

4

2 回答 2

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 返回的每个关键数据重复类似的操作。

于 2013-07-10T21:18:17.577 回答
1

您可以使用Mustache模板引擎将字典的值注入到标记中。

要将标记字符串实际加载到UIWebView您将执行以下操作:

NSURL * URL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]
[self.webView loadHTMLString:markup baseURL:URL];
于 2013-07-10T21:41:33.270 回答