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和活動指示燈加載 –