@@ -24,10 +24,10 @@ + (id)bridgeForWebView:(UIWebView *)webView webViewDelegate:(id<UIWebViewDelegat
24
24
- (void )webViewDidFinishLoad : (UIWebView *)webView {
25
25
if (webView != self.webView ) { return ; }
26
26
27
- if (![[self . webView stringByEvaluatingJavaScriptFromString: @" typeof WebViewJavascriptBridge == 'object'" ] isEqualToString: @" true" ]) {
27
+ if (![[webView stringByEvaluatingJavaScriptFromString: @" typeof WebViewJavascriptBridge == 'object'" ] isEqualToString: @" true" ]) {
28
28
NSString *filePath = [[NSBundle mainBundle ] pathForResource: @" WebViewJavascriptBridge.js" ofType: @" txt" ];
29
29
NSString *js = [NSString stringWithContentsOfFile: filePath encoding: NSUTF8StringEncoding error: nil ];
30
- [self . webView stringByEvaluatingJavaScriptFromString: js];
30
+ [webView stringByEvaluatingJavaScriptFromString: js];
31
31
}
32
32
33
33
if (self.startupMessageQueue ) {
@@ -37,39 +37,43 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView {
37
37
self.startupMessageQueue = nil ;
38
38
}
39
39
40
- if (self.webViewDelegate && [self .webViewDelegate respondsToSelector: @selector (webViewDidFinishLoad: )]) {
41
- [self .webViewDelegate webViewDidFinishLoad: webView];
40
+ __strong typeof (self.webViewDelegate ) strongDelegate = self.webViewDelegate ;
41
+ if (strongDelegate && [strongDelegate respondsToSelector: @selector (webViewDidFinishLoad: )]) {
42
+ [strongDelegate webViewDidFinishLoad: webView];
42
43
}
43
44
}
44
45
45
46
- (void )webView : (UIWebView *)webView didFailLoadWithError : (NSError *)error {
46
47
if (webView != self.webView ) { return ; }
47
- if (self.webViewDelegate && [self .webViewDelegate respondsToSelector: @selector (webView:didFailLoadWithError: )]) {
48
- [self .webViewDelegate webView: self .webView didFailLoadWithError: error];
48
+ __strong typeof (self.webViewDelegate ) strongDelegate = self.webViewDelegate ;
49
+ if (strongDelegate && [strongDelegate respondsToSelector: @selector (webView:didFailLoadWithError: )]) {
50
+ [strongDelegate webView: webView didFailLoadWithError: error];
49
51
}
50
52
}
51
53
52
54
- (BOOL )webView : (UIWebView *)webView shouldStartLoadWithRequest : (NSURLRequest *)request navigationType : (UIWebViewNavigationType)navigationType {
53
55
if (webView != self.webView ) { return YES ; }
54
56
NSURL *url = [request URL ];
57
+ __strong typeof (self.webViewDelegate ) strongDelegate = self.webViewDelegate ;
55
58
if ([[url scheme ] isEqualToString: kCustomProtocolScheme ]) {
56
59
if ([[url host ] isEqualToString: kQueueHasMessage ]) {
57
60
[self _flushMessageQueue ];
58
61
} else {
59
62
NSLog (@" WebViewJavascriptBridge: WARNING: Received unknown WebViewJavascriptBridge command %@ ://%@ " , kCustomProtocolScheme , [url path ]);
60
63
}
61
64
return NO ;
62
- } else if (self. webViewDelegate && [self .webViewDelegate respondsToSelector: @selector (webView:shouldStartLoadWithRequest:navigationType: )]) {
63
- return [self .webViewDelegate webView: webView shouldStartLoadWithRequest: request navigationType: navigationType];
65
+ } else if (strongDelegate && [strongDelegate respondsToSelector: @selector (webView:shouldStartLoadWithRequest:navigationType: )]) {
66
+ return [strongDelegate webView: webView shouldStartLoadWithRequest: request navigationType: navigationType];
64
67
} else {
65
68
return YES ;
66
69
}
67
70
}
68
71
69
72
- (void )webViewDidStartLoad : (UIWebView *)webView {
70
73
if (webView != self.webView ) { return ; }
71
- if (self.webViewDelegate && [self .webViewDelegate respondsToSelector: @selector (webViewDidStartLoad: )]) {
72
- [self .webViewDelegate webViewDidStartLoad: webView];
74
+ __strong typeof (self.webViewDelegate ) strongDelegate = self.webViewDelegate ;
75
+ if (strongDelegate && [strongDelegate respondsToSelector: @selector (webViewDidStartLoad: )]) {
76
+ [strongDelegate webViewDidStartLoad: webView];
73
77
}
74
78
}
75
79
0 commit comments