Skip to content

Commit 618fe2e

Browse files
author
Peyton Randolph
committed
add weak fallback for iOS 4
1 parent 5ec6c29 commit 618fe2e

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

WebViewJavascriptBridgeAbstract/WebViewJavascriptBridgeAbstract.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,21 @@
22
#define kCustomProtocolScheme @"wvjbscheme"
33
#define kQueueHasMessage @"__WVJB_QUEUE_MESSAGE__"
44

5+
#if TARGET_OS_IPHONE && defined(__IPHONE_5_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0)
6+
#define WEAK_FALLBACK weak
7+
#elif TARGET_OS_MAC && defined(__MAC_10_7) && (__MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_10_7)
8+
#define WEAK_FALLBACK weak
9+
#else
10+
#define WEAK_FALLBACK unsafe_unretained
11+
#endif
12+
513
typedef void (^WVJBResponseCallback)(id responseData);
614
typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback);
715

816
@interface WebViewJavascriptBridgeAbstract : NSObject
917

10-
@property (nonatomic, weak) id webView;
11-
@property (nonatomic, weak) id webViewDelegate;
18+
@property (nonatomic, WEAK_FALLBACK) id webView;
19+
@property (nonatomic, WEAK_FALLBACK) id webViewDelegate;
1220
@property (nonatomic, strong) NSMutableArray *startupMessageQueue;
1321
@property (nonatomic, strong) NSMutableDictionary *responseCallbacks;
1422
@property (nonatomic, strong) NSMutableDictionary *messageHandlers;

WebViewJavascriptBridge_OSX/WebViewJavascriptBridge_OSX.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
@interface WebViewJavascriptBridge : WebViewJavascriptBridgeAbstract
55

6-
@property (nonatomic, weak) WebView *webView;
7-
@property (nonatomic, weak) id webViewDelegate;
6+
@property (nonatomic, WEAK_FALLBACK) WebView *webView;
7+
@property (nonatomic, WEAK_FALLBACK) id webViewDelegate;
88

99
+ (id)bridgeForWebView:(WebView*)webView handler:(WVJBHandler)handler;
1010
+ (id)bridgeForWebView:(WebView*)webView webViewDelegate:(id)webViewDelegate handler:(WVJBHandler)handler;

WebViewJavascriptBridge_iOS/WebViewJavascriptBridge_iOS.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
@interface WebViewJavascriptBridge : WebViewJavascriptBridgeAbstract <UIWebViewDelegate>
55

6-
@property (nonatomic, weak) UIWebView *webView;
7-
@property (nonatomic, weak) id <UIWebViewDelegate> webViewDelegate;
6+
@property (nonatomic, WEAK_FALLBACK) UIWebView *webView;
7+
@property (nonatomic, WEAK_FALLBACK) id <UIWebViewDelegate> webViewDelegate;
88

99
+ (id)bridgeForWebView:(UIWebView*)webView handler:(WVJBHandler)handler;
1010
+ (id)bridgeForWebView:(UIWebView*)webView webViewDelegate:(id <UIWebViewDelegate>)webViewDelegate handler:(WVJBHandler)handler;

0 commit comments

Comments
 (0)