iOS开发的UIWebView

  上周看了几天的UIWebView,终于知道如何展示本地HTML,并且正确加载HTML相对路径下的JS文件了。但是,方案上午被否决了,为了缅怀一下上周的收获,也防止以后重蹈UIWebView的覆辙,还是记录一下为好。

UIWebView类有三个主要方法:

	

- (void)loadRequest:(NSURLRequest *)request;

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

- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)textEncodingName baseURL:(NSURL *)baseURL;


加载本地文件可以用第二个或者第三个,我本着简单做人高效做事的原则,选择了参数少的第二个方法。几经周折才发现,第二个参数baseURL:(NSURL *)baseURL的作用就是指定HTML文件中所有“超链接”“CSS”“JS”文件的相对路径的基地址。还有一点值得注意的是,想xcode工程中添加HTML和JS文件的时候,最好将整个文件夹以文件夹引用的形式添加,如下图,否则JS文件可能没加到工程中去。



然后加载HTML页面的代码如下:

 NSString *bundlePath = [[NSBundle mainBundle] bundlePath] ;

    bundlePath = [bundlePath stringByAppendingString:@"/anychart" ] ;

    NSString * htmlPath = [NSBundle pathForResource:@"xchart4html5.config"                                            ofType:@"html" inDirectory:bundlePath];

NSString * htmlPageStr = [NSString stringWithContentsOfFile:htmlPath ] ;

    [webView loadHTMLString:htmlPageStr  baseURL:baseURL ] ;


注意上文中的“baseURL”的计算过程如下:

 

NSString *bundlePath = [[NSBundle mainBundle] bundlePath] ;

    bundlePath = [bundlePath stringByAppendingString:@"/anychart" ] ;

    NSMutableString* stringBuffer = [[NSMutableString alloc ] init ] ;

    [stringBuffer appendString:bundlePath ]  ;

    NSURL *baseURL = [NSURL fileURLWithPath:stringBuffer];


然后就没有然后了,K.O.






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值