HTML的突飞猛进压抑了iOS和安卓的行业紧张,有位企业家说:HTML做出来的小程序在检索中,必须要知道小程序的全城,不然是找不到这个程序的,而App Store和安卓市场在程序上架的时候,设置了关键词,就可以通过关键词来搜索应用;现在HTML开发企业想到了将HTML页面嵌入到iOS和安卓中去,这是不是又要引起iOS和安卓行业的有一紧张氛围。
不过无论怎么样,该学习的知识我们都是需要来研究的;那么关于将HTML嵌入到iOS页面的开发,我们第一反应是使用UIWebview来实现,简单合理。
UIWebview的创建无需多言,无论使用比例适配,还是使用上左下右来适配,都能实现具体的效果。
那么,UIWebview加载HTML网页在开发时,会出现两种情况,一种HTML已经放置到网站上面我们只需要使用UIWebview加载网页就好;另一种我们将HTML数据网页拉入到工程中,分页展示加载本地数据。
区别只在于UIwebview加载网页时,其URL的获取,分别需要
1、
NSString *path = [[NSBundle mainBundle] pathForResource:@"urlString" ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
2、
NSURL *url = [NSURL URLWithString:@"urlString"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
正常的加载完成后,关于一些属性的设置,也需要我们注意的;
1、 UIWebView里包含一个scrollview,可以向scrollview里添加一个页头以达到跟随网页滚动的效果
|
2、 移除滚动后的外边阴影
UIScrollView *scrollView = webView.scrollView;
for (int i = 0; i < scrollView.subviews.count ; i++) {
UIView *view = [scrollView.subviews objectAtIndex:i];
if ([view isKindOfClass:[UIImageView class]]) {
view.hidden = YES ;
}
}
3、 用UIWebView显示一些pc站的网页时,会发现网页会超出屏幕,显得很不好看,这时可以在webViewDidFinishLoad这个代理里面通过js添加一个meta:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *meta = [NSString stringWithFormat:@"document.getElementsByName(\"viewport\")[0].content = \"width=%f, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\"", IPHONE_WIDTH];
[webView stringByEvaluatingJavaScriptFromString:meta];
}
并将把UIWebView的scalesPageToFit设成NO
4、我们从已经打开的页面跳入,进行pop操作时,需要调用UIwebview的goBack方法,
5、获取当前打开页面的url
a、
-(void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
}
b、
BOOL)webView:(UIWebViewNSURLRequestUIWebViewNavigationType)navigationType
{
NSLog(@"====%@",request.URL);
_urlDicsetObject:request.URLforKey:[NSStringstringWithFormat:@"%lu",_urlDic.count]];
returnYES;
}
6、获取当前页面的title
NSString *title = [webviewstringByEvaluatingJavaScriptFromString:@"document.title"];
至此的浅显研究,希望广大的博友跟帖完善,不胜感激!!!