UIWebView-Blocks 1.0

UIWebView-Blocks 1.0

测试已测试
语言语言 Obj-CObjective C
许可协议 MIT
发布日期最新发布日期2014年12月

haaakon维护。



  • 作者:
  • Shai Mishali

UIWebView+Blocks 是一个简单的分类,它将 blocks 实现到 UIWebView 中。这允许您使用 blocks 的力量,而不是实现一个代理。

NSURLRequest 使用方法

您可以直接调用静态方法之一,而不是分配一个新的 UIWebView 并分配一个代理:

UIWebView *webView = [UIWebView loadRequest:[NSURLRequest requestWithURL: [NSURL URLWithString:@"http://google.com"]]
                                     loaded:^(UIWebView *webView) {
                                         NSLog(@"Loaded successfully");
                                     }
                                     failed:^(UIWebView *webView, NSError *error) {
                                         NSLog(@"Failed loading %@", error);
                                     }];

或者

UIWebView *webView = [UIWebView loadRequest:[NSURLRequest requestWithURL: [NSURL URLWithString:@"http://google.com"]]
                                     loaded:^(UIWebView *webView) {
                                         NSLog(@"Loaded successfully");
                                     }
                                     failed:^(UIWebView *webView, NSError *error) {
                                         NSLog(@"Failed loading %@", error);
                                     }
                                loadStarted:^(UIWebView *webView) {
                                    NSLog(@"Started loading %@", webView.request.URL.absoluteString);
                                }
                                 shouldLoad:^BOOL(UIWebView *webView, UIWebViewNavigationType navigationType) {
                                     return YES;
                                 }];

HTML 字符串使用方法

UIWebView *webView = [UIWebView loadHTMLString:htmlString
                                        loaded:^(UIWebView *) {
                                            NSLog(@"Loaded successfully");
                                        }
                                        failed:^(UIWebView *, NSError *) {
                                             NSLog(@"Failed loading %@", error);
                                        }];

或者

UIWebView *webView = [UIWebView loadHTMLString:htmlString
                                        loaded:^(UIWebView *) {
                                            NSLog(@"Loaded successfully");
                                        }
                                        failed:^(UIWebView *, NSError *) {
                                             NSLog(@"Failed loading %@", error);
                                        }
                                   loadStarted:^(UIWebView *webView) {
                                       NSLog(@"Started loading %@", webView.request.URL.absoluteString);
                                   }
                                    shouldLoad:^BOOL(UIWebView *webView, NSURLRequest *request, UIWebViewNavigationType navigationType) {
                                        return YES;
                                    }];

类将返回一个 UIWebView 对象,您可以稍后将其添加为当前视图的子视图。

webView.frame = [[UIScreen mainScreen] bounds];
[self.view addSubview: webView];

注意:UIWebView+Blocks 当前不支持在同一视图中同时使用多个 UIWebView。

真的结束报告

在 UIWebView+Blocks.h 中,如果您希望在页面完全加载后接收到通知,而不是每次加载资源时都接收到通知(默认 UIWebViewDelegate 行为),请将 TRUE_END_REPORT 设置为 YES。此功能仍处于测试阶段,并且可能不会在所有时候都完美工作。

许可协议

版权所有 (C) 2013 由 Shai Mishali 开发

任何获得此软件及其相关文档文件(“软件”)副本的人,无论出于何种目的,均可免费处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售副本,并允许向软件提供的人以本协议相同的条件这样做,但前提如下:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现有所提供”提供,不考虑任何保证,无论明示或暗示,包括但不限于对适销性、针对特定用途的适应性和不侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其它责任承担任何责任,无论是在合同、侵权或其他行为中产生的,不论源于、由或与软件、使用或以其他方式处理软件有关。