UIWebView小结--<1>

来源:互联网 发布:outlook邮件导入mac 编辑:程序博客网 时间:2024/05/16 08:51
1、移除滚动的外边阴影

原理:UIWebView包含scrollView组件,用来将关联web内容实现滚动效果,页面滚动后的UIWebView的面板周围会出现阴影效果,该效果是在四周添加UIImageView实现的,因此移除这种阴影效果的代码如下:
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 ;    }}

2、UIWebViewDelegate 关键的两个:

  • - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
  • - (void)webViewDidFinishLoad:(UIWebView *)webView;

3、调用javascript代码,由UIWebView提供

  • - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

4、取web页面的标题

  • NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];

5、长按web页面中的各种效果

  • 默认情况下,长按web页中的链接,系统会自动呼出菜单提供open,copy和cancel选项
    1.取消这种效果,在代理方法webViewDidFinisheLoad中使用:
    [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
    2.点链接从saifir加载
    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
    它的返回值用以控制是否允许加载目标链接页面的内容,UIWebViewNavigationType枚举定义了页面中用户行为的分类
    • UIWebViewNavigationTypeLinkClicked,用户触击了一个链接。
    • UIWebViewNavigationTypeFormSubmitted,用户提交了一个表单。
    • UIWebViewNavigationTypeBackForward,用户触击前进或返回按钮。
    • UIWebViewNavigationTypeReload,用户触击重新加载的按钮。
    • UIWebViewNavigationTypeFormResubmitted,用户重复提交表单
    • UIWebViewNavigationTypeOther,发生其它行为。
      因此在方法中,代码如下:
      if ( navigationType == UIWebViewNavigationTypeLinkClicked ) { [[UIApplication sharedApplication] openURL:[request URL]]; return NO;}
    • 默认情况下在页面元素中进行长按操作,会弹出菜单,来允许进行选择行为。禁用此行为代码在代理方法webViewDidFinisheLoad中使用:
      [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];

6、一些常用属性

  • scalesPageToFit属性. 设为YES UIWebView可以缩放HTML页面来适配其视口大小,从而达到整屏显示内容的效果,并且用户可以用捏合动作来放大或缩小页面来查看内容。设为NO的话可以禁用缩放
  • detectsPhoneNumbers。默认是YES 自动检测网页上的电话号码,单击可以拨打
  • 为webView添加背景图片:backgroundColor = [UIColor clearColor] opaque = NO 设为透明的,然后再在webView下添加一个UIImageView展示即可。

7、常调用的JS 但都需要在网页内容加载完成后才可以

  • //获取web页面内容信息,此处获取的是个json字符串
    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
  • //取消长按webView上的链接弹出actionSheet的问题:
    [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout = 'none';"];
  • // 获取UIWebView的合适高度,
    [webview stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];
  • // 取消页面元素中进行长按操作
    [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];



0 0