2010年8月25日 星期三

iPhone How to load a local HTML file and its images?

今天我需要從local加入一個html
而html又是附在各個不同語言的lproj資料夾下

現在有個抉擇來啦~
1. 是要各語言資料夾下都包含一份圖檔
2. 還是要共用一份resource就好了呢?
嗯~選1的話,還滿直覺的,當下不用什麼煩惱
但是未來要改個圖改個名可是要很辛苦的一份一份改捏
而且明明就可以共用的resource又何必複製好多份呢

好吧,所以我有一個資料夾完全是拿來放image resource
那UIWebView 這邊一開始我選擇loadRequest的method來做
不過圖片都是叉燒包...

很明顯我load html的路徑跟image是不同位置,當然行不通囉
嗯~換個邊思考一下,我們把url指到image那邊吧
看起來 loadHTMLString: baseURL: 這個method可以滿足我們的需求

1. 我們除了將html以iPhone常用的UTF8進行編碼,並且指定html的路徑
    (程式碼line 5,6,8,9,10)

2. image path要特別處理過才能在UIWebView下正常運作
    (程式碼line1,2,3)

3. 試試看吧~ it works like a charm!


NSString *imagePath = [[NSBundle mainBundle] resourcePath];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"];
imagePath = [imagePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
NSString* filePath = [[NSBundle mainBundle] pathForResource:@"test" 
   ofType:@"html"];  

[webView loadHTMLString:[NSString stringWithContentsOfFile:filePath
                                         encoding:NSUTF8StringEncoding 
                                                     error:nil
             baseURL:[NSURL URLWithString: 
                  [NSString stringWithFormat:@"file:/%@//",imagePath]]];

參考資料:dBlog
              iphoneincubator
              brainwashinc
              第24個夏天後

沒有留言:

張貼留言

內容回應