Skip to content

Commit 5069f08

Browse files
committed
Clean up internal representation of messages with a WVJBMessage typedef
1 parent b68bc26 commit 5069f08

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

Changelog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
v4.1.0
22
+ Allow for sending null/nil data packets
33
+ Drop support for JSONKit
4+
+ Clean up internal represenation of messages
45

56
v4.0.2
67
+ Fix NSInvalidArgumentException: "attempt to insert nil object" when using shorthand -callHandler:

WebViewJavascriptBridge/WebViewJavascriptBridge.m

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#define WVJB_WEAK __unsafe_unretained
1515
#endif
1616

17+
typedef NSDictionary WVJBMessage;
1718

1819
@implementation WebViewJavascriptBridge {
1920
WVJB_WEAK WVJB_WEBVIEW_TYPE* _webView;
@@ -110,15 +111,15 @@ - (void)_sendData:(id)data responseCallback:(WVJBResponseCallback)responseCallba
110111
[self _queueMessage:message];
111112
}
112113

113-
- (void)_queueMessage:(NSDictionary *)message {
114+
- (void)_queueMessage:(WVJBMessage*)message {
114115
if (_startupMessageQueue) {
115116
[_startupMessageQueue addObject:message];
116117
} else {
117118
[self _dispatchMessage:message];
118119
}
119120
}
120121

121-
- (void)_dispatchMessage:(NSDictionary *)message {
122+
- (void)_dispatchMessage:(WVJBMessage*)message {
122123
NSString *messageJSON = [self _serializeMessage:message];
123124
[self _log:@"SEND" json:messageJSON];
124125
messageJSON = [messageJSON stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"];
@@ -147,8 +148,8 @@ - (void)_flushMessageQueue {
147148
NSLog(@"WebViewJavascriptBridge: WARNING: Invalid %@ received: %@", [messages class], messages);
148149
return;
149150
}
150-
for (NSDictionary *message in messages) {
151-
if (![message isKindOfClass:[NSDictionary class]]) {
151+
for (WVJBMessage* message in messages) {
152+
if (![message isKindOfClass:[WVJBMessage class]]) {
152153
NSLog(@"WebViewJavascriptBridge: WARNING: Invalid %@ received: %@", [message class], message);
153154
continue;
154155
}
@@ -164,7 +165,7 @@ - (void)_flushMessageQueue {
164165
NSString* callbackId = message[@"callbackId"];
165166
if (callbackId) {
166167
responseCallback = ^(id responseData) {
167-
NSDictionary* msg = @{ @"responseId":callbackId, @"responseData":responseData };
168+
WVJBMessage* msg = @{ @"responseId":callbackId, @"responseData":responseData };
168169
[self _queueMessage:msg];
169170
};
170171
} else {
@@ -199,7 +200,7 @@ - (NSString *)_serializeMessage:(id)message {
199200
return [[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:message options:0 error:nil] encoding:NSUTF8StringEncoding];
200201
}
201202

202-
- (NSDictionary *)_deserializeMessageJSON:(NSString *)messageJSON {
203+
- (NSArray*)_deserializeMessageJSON:(NSString *)messageJSON {
203204
return [NSJSONSerialization JSONObjectWithData:[messageJSON dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:nil];
204205
}
205206

0 commit comments

Comments
 (0)