Authored by 孟顺

修改 webview delegate 使得 explorervc 获得 delegate 回调

review by 枪兵
... ... @@ -12,6 +12,8 @@ static float kprogressViewRadius = 2.0f;
#import "YHExplorerViewController.h"
#import "YHWebViewProgress.h"
#import "YHWebViewProgressView.h"
#import "CDVUIWebViewEngine.h"
#import "CDVWKWebViewEngine.h"
@interface YHExplorerViewController ()<WKNavigationDelegate, WKUIDelegate>
{
... ... @@ -93,6 +95,10 @@ static float kprogressViewRadius = 2.0f;
if ([self.webViewEngine isKindOfClass:NSClassFromString(@"CDVWKWebViewEngine")]) {
[self.progressView useWkWebView:(WKWebView *)self.webView];
[self.webView addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:nil];
((WKWebView *)self.webView).UIDelegate = self;
((WKWebView *)self.webView).navigationDelegate = self;
} else if ([self.webViewEngine isKindOfClass:NSClassFromString(@"CDVUIWebViewEngine")]) {
((UIWebView *)self.webView).delegate = self;
}
}
... ... @@ -293,6 +299,10 @@ static float kprogressViewRadius = 2.0f;
- (void)webViewDidStartLoad:(UIWebView*)theWebView
{
if ([self.webViewEngine isKindOfClass:CDVUIWebViewEngine.class]) {
[((CDVUIWebViewEngine *)self.webViewEngine).uiWebViewDelegate webViewDidStartLoad:theWebView];
}
if (self.progressBar) {
[self.progressBar webViewDidStartLoad:theWebView];
}
... ... @@ -304,6 +314,10 @@ static float kprogressViewRadius = 2.0f;
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
if ([self.webViewEngine isKindOfClass:CDVUIWebViewEngine.class]) {
[((CDVUIWebViewEngine *)self.webViewEngine).uiWebViewDelegate webViewDidFinishLoad:theWebView];
}
if (self.originRequest == nil) {
self.originRequest = theWebView.request;
}
... ... @@ -330,6 +344,10 @@ static float kprogressViewRadius = 2.0f;
- (void)webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
{
if ([self.webViewEngine isKindOfClass:CDVUIWebViewEngine.class]) {
[((CDVUIWebViewEngine *)self.webViewEngine).uiWebViewDelegate webView:theWebView didFailLoadWithError:error];
}
if (self.delegate && [self.delegate respondsToSelector:@selector(yhExplorer_webView:didFailLoadWithError:)]) {
[self.delegate yhExplorer_webView:self didFailLoadWithError:error];
}
... ... @@ -350,6 +368,9 @@ static float kprogressViewRadius = 2.0f;
}
BOOL currentShouldStartLoadWithRequest = YES;
if ([self.webViewEngine isKindOfClass:CDVUIWebViewEngine.class]) {
currentShouldStartLoadWithRequest = [((CDVUIWebViewEngine *)self.webViewEngine).uiWebViewDelegate webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
}
if (self.delegate && [self.delegate respondsToSelector:@selector(yhExplorer_webView:shouldStartLoadWithRequest:navigationType:)]) {
currentShouldStartLoadWithRequest = [self.delegate yhExplorer_webView:self shouldStartLoadWithRequest:request navigationType:navigationType];
... ...