Skip to content

Commit 4e990fb

Browse files
committed
Removed compiler warnings
1 parent 1bce38a commit 4e990fb

File tree

6 files changed

+107
-147
lines changed

6 files changed

+107
-147
lines changed

WebViewJavascriptBridge/WKWebViewJavascriptBridge.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
//
22
// WKWebViewJavascriptBridge.h
33
//
4-
// Created by Loki Meyburg on 10/15/14.
5-
// Copyright (c) 2014 Loki Meyburg. All rights reserved.
4+
// Created by @LokiMeyburg on 10/15/14.
5+
// Copyright (c) 2014 @LokiMeyburg. All rights reserved.
66
//
77

88
#if (__MAC_OS_X_VERSION_MAX_ALLOWED > __MAC_10_9 || __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1)
@@ -12,12 +12,10 @@
1212
#if defined(supportsWKWebKit )
1313

1414
#import <Foundation/Foundation.h>
15+
#import "WebViewJavascriptBridgeBase.h"
1516
#import <WebKit/WebKit.h>
1617

17-
typedef void (^WVJBResponseCallback)(id responseData);
18-
typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback);
19-
20-
@interface WKWebViewJavascriptBridge : NSObject<WKNavigationDelegate>
18+
@interface WKWebViewJavascriptBridge : NSObject<WKNavigationDelegate, WebViewJavascriptBridgeBaseDelegate>
2119

2220
+ (instancetype)bridgeForWebView:(WKWebView*)webView handler:(WVJBHandler)handler;
2321
+ (instancetype)bridgeForWebView:(WKWebView*)webView webViewDelegate:(NSObject<WKNavigationDelegate>*)webViewDelegate handler:(WVJBHandler)handler;

WebViewJavascriptBridge/WKWebViewJavascriptBridge.m

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
//
22
// WKWebViewJavascriptBridge.m
33
//
4-
// Created by Loki Meyburg on 10/15/14.
5-
// Copyright (c) 2014 Loki Meyburg. All rights reserved.
4+
// Created by @LokiMeyburg on 10/15/14.
5+
// Copyright (c) 2014 @LokiMeyburg. All rights reserved.
66
//
77

88

99
#import "WKWebViewJavascriptBridge.h"
10-
#import "WebViewJavascriptBridgeBase.h"
1110

1211
#if defined(supportsWKWebKit)
1312

@@ -44,7 +43,7 @@ - (void)send:(id)data {
4443
}
4544

4645
- (void)send:(id)data responseCallback:(WVJBResponseCallback)responseCallback {
47-
[_base _sendData:data responseCallback:responseCallback handlerName:nil];
46+
[_base sendData:data responseCallback:responseCallback handlerName:nil];
4847
}
4948

5049
- (void)callHandler:(NSString *)handlerName {
@@ -56,7 +55,7 @@ - (void)callHandler:(NSString *)handlerName data:(id)data {
5655
}
5756

5857
- (void)callHandler:(NSString *)handlerName data:(id)data responseCallback:(WVJBResponseCallback)responseCallback {
59-
[_base _sendData:data responseCallback:responseCallback handlerName:handlerName];
58+
[_base sendData:data responseCallback:responseCallback handlerName:handlerName];
6059
}
6160

6261
- (void)registerHandler:(NSString *)handlerName handler:(WVJBHandler)handler {
@@ -85,14 +84,14 @@ - (void) _setupInstance:(WKWebView*)webView webViewDelegate:(id<WKNavigationDele
8584
_webView = webView;
8685
_webViewDelegate = webViewDelegate;
8786
_webView.navigationDelegate = self;
88-
_base = [[WebViewJavascriptBridgeBase alloc] initWithWebViewType:@"WKWebView" handler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle];
87+
_base = [[WebViewJavascriptBridgeBase alloc] initWithHandler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle];
8988
_base.delegate = self;
9089
}
9190

9291

9392
- (void)WKFlushMessageQueue {
9493
[_webView evaluateJavaScript:[_base webViewJavascriptFetchQueyCommand] completionHandler:^(NSString* result, NSError* error) {
95-
[_base _flushMessageQueue:result];
94+
[_base flushMessageQueue:result];
9695
}];
9796
}
9897

@@ -104,7 +103,7 @@ - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigat
104103

105104
if (_base.numRequestsLoading == 0) {
106105
[webView evaluateJavaScript:[_base webViewJavascriptCheckCommand] completionHandler:^(NSString *result, NSError *error) {
107-
[_base injectJavascriptFile:[result boolValue]];
106+
[_base injectJavascriptFile:![result boolValue]];
108107
}];
109108
}
110109

@@ -122,8 +121,8 @@ - (void)webView:(WKWebView *)webView
122121
NSURL *url = navigationAction.request.URL;
123122
__strong typeof(_webViewDelegate) strongDelegate = _webViewDelegate;
124123

125-
if ([_base correctProcotocolScheme:url]) {
126-
if ([_base correctHost:url]) {
124+
if ([_base isCorrectProcotocolScheme:url]) {
125+
if ([_base isCorrectHost:url]) {
127126
[self WKFlushMessageQueue];
128127
} else {
129128
[_base logUnkownMessage:url];

WebViewJavascriptBridge/WebViewJavascriptBridge.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,20 @@
77
//
88

99
#import <Foundation/Foundation.h>
10+
#import "WebViewJavascriptBridgeBase.h"
1011

1112
#if defined __MAC_OS_X_VERSION_MAX_ALLOWED
1213
#import <WebKit/WebKit.h>
1314
#define WVJB_PLATFORM_OSX
1415
#define WVJB_WEBVIEW_TYPE WebView
15-
#define WVJB_WEBVIEW_DELEGATE_TYPE NSObject
16+
#define WVJB_WEBVIEW_DELEGATE_TYPE NSObject<WebViewJavascriptBridgeBaseDelegate>
1617
#elif defined __IPHONE_OS_VERSION_MAX_ALLOWED
1718
#import <UIKit/UIWebView.h>
1819
#define WVJB_PLATFORM_IOS
1920
#define WVJB_WEBVIEW_TYPE UIWebView
20-
#define WVJB_WEBVIEW_DELEGATE_TYPE NSObject<UIWebViewDelegate>
21+
#define WVJB_WEBVIEW_DELEGATE_TYPE NSObject<UIWebViewDelegate, WebViewJavascriptBridgeBaseDelegate>
2122
#endif
2223

23-
typedef void (^WVJBResponseCallback)(id responseData);
24-
typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback);
25-
2624
@interface WebViewJavascriptBridge : WVJB_WEBVIEW_DELEGATE_TYPE
2725

2826
+ (instancetype)bridgeForWebView:(WVJB_WEBVIEW_TYPE*)webView handler:(WVJBHandler)handler;

WebViewJavascriptBridge/WebViewJavascriptBridge.m

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,13 @@
77
//
88

99
#import "WebViewJavascriptBridge.h"
10-
#import "WebViewJavascriptBridgeBase.h"
1110

1211
#if __has_feature(objc_arc_weak)
1312
#define WVJB_WEAK __weak
1413
#else
1514
#define WVJB_WEAK __unsafe_unretained
1615
#endif
1716

18-
typedef NSDictionary WVJBMessage;
19-
2017
@implementation WebViewJavascriptBridge {
2118
WVJB_WEAK WVJB_WEBVIEW_TYPE* _webView;
2219
WVJB_WEAK id _webViewDelegate;
@@ -53,7 +50,7 @@ - (void)send:(id)data {
5350
}
5451

5552
- (void)send:(id)data responseCallback:(WVJBResponseCallback)responseCallback {
56-
[_base _sendData:data responseCallback:responseCallback handlerName:nil];
53+
[_base sendData:data responseCallback:responseCallback handlerName:nil];
5754
}
5855

5956
- (void)callHandler:(NSString *)handlerName {
@@ -65,7 +62,7 @@ - (void)callHandler:(NSString *)handlerName data:(id)data {
6562
}
6663

6764
- (void)callHandler:(NSString *)handlerName data:(id)data responseCallback:(WVJBResponseCallback)responseCallback {
68-
[_base _sendData:data responseCallback:responseCallback handlerName:handlerName];
65+
[_base sendData:data responseCallback:responseCallback handlerName:handlerName];
6966
}
7067

7168
- (void)registerHandler:(NSString *)handlerName handler:(WVJBHandler)handler {
@@ -99,7 +96,7 @@ - (void) _platformSpecificSetup:(WVJB_WEBVIEW_TYPE*)webView webViewDelegate:(WVJ
9996
_webView.resourceLoadDelegate = self;
10097
_webView.policyDelegate = self;
10198

102-
_base = [[WebViewJavascriptBridgeBase alloc] initWithWebViewType:@"WebView" handler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle];
99+
_base = [[WebViewJavascriptBridgeBase alloc] initWithHandler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle];
103100
_base.delegate = self;
104101
}
105102

@@ -114,7 +111,7 @@ - (void)webView:(WebView *)webView didFinishLoadForFrame:(WebFrame *)frame
114111
if (webView != _webView) { return; }
115112

116113
if (![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) {
117-
[_base injectJavascriptFile:NO];
114+
[_base injectJavascriptFile:YES];
118115
}
119116

120117
[_base dispatchStartUpMessageQueue];
@@ -137,10 +134,10 @@ - (void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary
137134
if (webView != _webView) { return; }
138135

139136
NSURL *url = [request URL];
140-
if ([_base correctProcotocolScheme:url]) {
141-
if ([_base correctHost:url]) {
137+
if ([_base isCorrectProcotocolScheme:url]) {
138+
if ([_base isCorrectHost:url]) {
142139
NSString *messageQueueString = [self _evaluateJavascript:[_base webViewJavascriptFetchQueyCommand]];
143-
[_base _flushMessageQueue:messageQueueString];
140+
[_base flushMessageQueue:messageQueueString];
144141
} else {
145142
[_base logUnkownMessage:url];
146143
}
@@ -180,7 +177,7 @@ - (void) _platformSpecificSetup:(WVJB_WEBVIEW_TYPE*)webView webViewDelegate:(id<
180177
_webView = webView;
181178
_webView.delegate = self;
182179
_webViewDelegate = webViewDelegate;
183-
_base = [[WebViewJavascriptBridgeBase alloc] initWithWebViewType:@"WebView" handler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle];
180+
_base = [[WebViewJavascriptBridgeBase alloc] initWithHandler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle];
184181
_base.delegate = self;
185182
}
186183

@@ -194,7 +191,7 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView {
194191
_numRequestsLoading--;
195192

196193
if (_numRequestsLoading == 0 && ![[webView stringByEvaluatingJavaScriptFromString:[_base webViewJavascriptCheckCommand]] isEqualToString:@"true"]) {
197-
[_base injectJavascriptFile:NO];
194+
[_base injectJavascriptFile:YES];
198195
}
199196
[_base dispatchStartUpMessageQueue];
200197

@@ -220,10 +217,10 @@ - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)
220217
if (webView != _webView) { return YES; }
221218
NSURL *url = [request URL];
222219
__strong WVJB_WEBVIEW_DELEGATE_TYPE* strongDelegate = _webViewDelegate;
223-
if ([_base correctProcotocolScheme:url]) {
224-
if ([_base correctHost:url]) {
220+
if ([_base isCorrectProcotocolScheme:url]) {
221+
if ([_base isCorrectHost:url]) {
225222
NSString *messageQueueString = [self _evaluateJavascript:[_base webViewJavascriptFetchQueyCommand]];
226-
[_base _flushMessageQueue:messageQueueString];
223+
[_base flushMessageQueue:messageQueueString];
227224
} else {
228225
[_base logUnkownMessage:url];
229226
}
Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
//
22
// WebViewJavascriptBridgeBase.h
3-
// ExampleApp-iOS
43
//
5-
// Created by Loki Meyburg on 2014-10-29.
6-
// Copyright (c) 2014 Marcus Westin. All rights reserved.
4+
// Created by @LokiMeyburg on 10/15/14.
5+
// Copyright (c) 2014 @LokiMeyburg. All rights reserved.
76
//
7+
88
#import <Foundation/Foundation.h>
99

1010
#define kCustomProtocolScheme @"wvjbscheme"
@@ -14,47 +14,30 @@ typedef void (^WVJBResponseCallback)(id responseData);
1414
typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback);
1515
typedef NSDictionary WVJBMessage;
1616

17-
18-
// setup delegate
1917
@protocol WebViewJavascriptBridgeBaseDelegate <NSObject>
2018
- (NSString*) _evaluateJavascript:(NSString*)javascriptCommand;
2119
@end
2220

23-
24-
2521
@interface WebViewJavascriptBridgeBase : NSObject
2622

27-
// Delegate property
2823
@property (assign) id <WebViewJavascriptBridgeBaseDelegate> delegate;
2924
@property (strong, nonatomic) NSMutableArray* startupMessageQueue;
3025
@property (strong, nonatomic) NSMutableDictionary* responseCallbacks;
3126
@property (strong, nonatomic) NSMutableDictionary* messageHandlers;
3227
@property (strong, nonatomic) WVJBHandler messageHandler;
3328
@property NSUInteger numRequestsLoading;
3429

35-
3630
+ (void)enableLogging;
37-
-(id)initWithWebViewType:(NSString*)webViewType handler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle;
38-
-(void)reset;
39-
- (void)_sendData:(id)data responseCallback:(WVJBResponseCallback)responseCallback handlerName:(NSString*)handlerName;
40-
- (void)_queueMessage:(WVJBMessage*)message;
41-
- (void)_dispatchMessage:(WVJBMessage*)message;
42-
- (void)_flushMessageQueue:(NSString *)messageQueueString;
43-
44-
// specific extractions
45-
- (void) injectJavascriptFile:(BOOL)shouldInject;
46-
-(BOOL) correctProcotocolScheme:(NSURL*)url;
47-
-(BOOL) correctHost:(NSURL*)urll;
48-
-(void) logUnkownMessage:(NSURL*)url;
49-
-(NSString *) webViewJavascriptCheckCommand;
50-
-(NSString *) webViewJavascriptFetchQueyCommand;
51-
- (void) dispatchStartUpMessageQueue;
52-
53-
54-
// probably dont need to be public
55-
- (NSString *)_serializeMessage:(id)message;
56-
- (NSArray*)_deserializeMessageJSON:(NSString *)messageJSON;
57-
- (void)_log:(NSString *)action json:(id)json;
58-
31+
- (id)initWithHandler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle;
32+
- (void)reset;
33+
- (void)sendData:(id)data responseCallback:(WVJBResponseCallback)responseCallback handlerName:(NSString*)handlerName;
34+
- (void)flushMessageQueue:(NSString *)messageQueueString;
35+
- (void)injectJavascriptFile:(BOOL)shouldInject;
36+
- (BOOL)isCorrectProcotocolScheme:(NSURL*)url;
37+
- (BOOL)isCorrectHost:(NSURL*)urll;
38+
- (void)logUnkownMessage:(NSURL*)url;
39+
- (void)dispatchStartUpMessageQueue;
40+
- (NSString *)webViewJavascriptCheckCommand;
41+
- (NSString *)webViewJavascriptFetchQueyCommand;
5942

6043
@end

0 commit comments

Comments
 (0)