近日公司需求變動,之前一個頁面是後臺返回HTML字段,而後咱們直接用webView接收,如今新增一個頁面,數據後臺返回非HTML,頁面跟前面一直,所幸本身會點HTML,因此偷了個懶,本身用代碼把數據組裝成了一個THML,直接調用之前的UI,節省了一些工做,可是,這個組裝HTML的過程卻不是那麼簡單,因此網上搜索了一寫資料,能夠簡化這部分工做。html
a.建立模板文件以下:web
<HTML>lua
<HEAD> </HEAD>代理
<BODY>htm
<h1>{{name}}</h1>模板引擎
<p>{{content}}</p>ip
</BODY>字符串
</HTML>string
這只是一個最簡單的模板,你能夠在這個文件中加入各類HTML元素標籤等,{{參數名}}代替後面傳進來的參數,這個參數名必須與後面穿參的字典中保持一致it
NSString *template = [NSString stringWithCntentsOfFile:.....]
NSDictionary *valueDic = @{@"name":@"標題", @"content":@"內容:HTML渲染模板"};
注意:此處字典的key值與上面的模板中的參數對應
NSString *htmlstr = [GRMustacheTemplate renderObject:valueDic fromeString:template error:nil];
經過UIWebView的stringByEvaluatingJavaScriptFromString方法能夠實現,該方法能夠向UIWebView傳入一段須要執行的JS代碼,而後得到執行結果
並無原生的API,咱們知道webView的代理方法中shouldStartLoadWithRequest會捕獲webView跳轉下一個頁面,咱們可讓H5在頁面點擊某個按鈕的時候,發出一個大家定義規範的一個URL經過代理捕獲解析(eg: test://goToPage?pageID=1),從而本身定義跳轉原生頁面,或者其餘操做。