HTML嵌入到iOS页面的开发
2017-02-22 09:47
369 查看
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、 移除滚动后的外边阴影
3、 用UIWebView显示一些pc站的网页时,会发现网页会超出屏幕,显得很不好看,这时可以在webViewDidFinishLoad这个代理里面通过js添加一个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:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"====%@",request.URL);
[_urlDic
setObject:request.URL
forKey:[NSString
stringWithFormat:@"%lu",_urlDic.count]];
return
YES;
}
6、获取当前页面的title
NSString *title = [webviewstringByEvaluatingJavaScriptFromString:@"document.title"];
至此的浅显研究,希望广大的博友跟帖完善,不胜感激!!!
不过无论怎么样,该学习的知识我们都是需要来研究的;那么关于将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里添加一个页头以达到跟随网页滚动的效果
CGFloat headerHeight = 36.0f; // 注意:y坐标必须是负数,IPHONE_WIDTH是屏幕宽度 UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, -headerHeight, IPHONE_WIDTH, headerHeight)]; [_webView.scrollView addSubview:_headerView]; // 修改webView的scrollView的contentInset,让顶部留出一点空间 UIEdgeInsets edgeInset = _webView.scrollView.contentInset; _webView.scrollView.contentInset = UIEdgeInsetsMake(headerView.frameHeight, edgeInset.left, edgeInset.bottom, edgeInset.right); |
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:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSLog(@"====%@",request.URL);
[_urlDic
setObject:request.URL
forKey:[NSString
stringWithFormat:@"%lu",_urlDic.count]];
return
YES;
}
6、获取当前页面的title
NSString *title = [webviewstringByEvaluatingJavaScriptFromString:@"document.title"];
至此的浅显研究,希望广大的博友跟帖完善,不胜感激!!!
相关文章推荐
- HTML嵌入到iOS页面的开发
- HTML嵌入到iOS页面的开发
- HTML嵌入到iOS页面的开发
- HTML嵌入到iOS页面的开发
- HTML嵌入到iOS页面的开发
- HTML嵌入到iOS页面的开发
- iOS开发-- TFHpple抓取GB-2312编码的html页面,页面返回编码错误
- 《使用Mason在HTML页面中嵌入Perl》(节选)
- 在HTML页面嵌入Javascript写法的区别(script标签)
- pdf嵌入HTML页面
- 将HTML页面嵌入FLEX应用中
- Html的页面功能开发技巧集合(一)(搜集中)
- Flash 中嵌入 HTML页面(Flash embed html page)
- 如何开发为HTML页面签名的ActiveX控件
- 在html 静态页面中引用外部页面 Includ , 包含 ,嵌入
- 【学习】将HTML页面嵌入FLEX应用中
- 在Flex中嵌入完整HTML页面
- 在Flex中嵌入完整HTML页面
- 在Flex中嵌入完整HTML页面
- 在Flex中嵌入完整HTML页面