0
我有一个应用程序基于UIWebview
, 当用户点击一个URL,默认行为是立即显示一个空白页,并保持等待直到页面加载我如何保持当前页面,直到下一页完全加载(ios UIWebview)
是否可以保持当前页面,直到下一页加载?
感谢您的提前。
我有一个应用程序基于UIWebview
, 当用户点击一个URL,默认行为是立即显示一个空白页,并保持等待直到页面加载我如何保持当前页面,直到下一页完全加载(ios UIWebview)
是否可以保持当前页面,直到下一页加载?
感谢您的提前。
我很好奇这种功能的必要性,我可能会同意Chandra Vaghasiya的comment。
说了这可能。
UIWebView
的代表。webViewDidStartLoad:
方法中,拍摄Web视图的快照,并在视图层次结构的Web视图上方添加生成的视图。webViewDidFinishLoad:
和webView:didFailLoadWithError:
方法只是隐藏快照视图。示例代码:
@interface ViewController() <UIWebViewDelegate>
@property (weak, nonatomic) IBOutlet UIWebView *webView;
@property (nonatomic, strong) UIView *snapshotView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL URLWithString:@"https://google.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
self.snapshotView = [self.webView snapshotViewAfterScreenUpdates:NO];
self.snapshotView.frame = self.webView.frame;
[self.view insertSubview:self.snapshotView
aboveSubview:self.webView];
self.snapshotView.hidden = NO;
// THIS IS JUST FOR DEMONSTRATION PURPOSES SO
// YOU CAN SEE THE LOADING HAPPENING BEHIND
// THE SNAPSHOT VIEW
self.snapshotView.alpha = 0.8;
NSLog(@"Display snapshot");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
self.snapshotView.hidden = YES;
NSLog(@"Hide snapshot");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
self.snapshotView.hidden = YES;
NSLog(@"Hide snapshot due to error");
}
@end
这是一个好主意THX :) –
等待,直到页面使用的NSTimer和活动指示灯加载 –