HTML嵌入到iOS页面的开发

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里添加一个页头以达到跟随网页滚动的效果
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);

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:(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"];  

 至此的浅显研究,希望广大的博友跟帖完善,不胜感激!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值