UIWebView+Blocks 是一个简单的分类,它将 blocks 实现到 UIWebView 中。这允许您使用 blocks 的力量,而不是实现一个代理。
您可以直接调用静态方法之一,而不是分配一个新的 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;
}];
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 开发
任何获得此软件及其相关文档文件(“软件”)副本的人,无论出于何种目的,均可免费处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售副本,并允许向软件提供的人以本协议相同的条件这样做,但前提如下:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现有所提供”提供,不考虑任何保证,无论明示或暗示,包括但不限于对适销性、针对特定用途的适应性和不侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其它责任承担任何责任,无论是在合同、侵权或其他行为中产生的,不论源于、由或与软件、使用或以其他方式处理软件有关。