Skip to content

Commit b318263

Browse files
committed
WKWebViewJavascriptBridge successfully using Base class with delegate JS execution
1 parent 859c823 commit b318263

File tree

4 files changed

+25
-4
lines changed

4 files changed

+25
-4
lines changed

WebViewJavascriptBridge/WKWebViewJavascriptBridge.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback);
3232
- (void)callHandler:(NSString*)handlerName data:(id)data responseCallback:(WVJBResponseCallback)responseCallback;
3333
- (void)reset;
3434

35+
// delegate method
36+
- (void) _evaluateJavascript:(NSString*)javascriptCommand;
37+
3538
@end
3639

3740
#endif

WebViewJavascriptBridge/WKWebViewJavascriptBridge.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ @implementation WKWebViewJavascriptBridge {
1818
WebViewJavascriptBridgeBase *_base;
1919
}
2020

21+
//@synthesize delegate;
22+
2123
/* API
2224
*****/
2325

@@ -86,6 +88,7 @@ - (void) _platformSpecificSetup:(WKWebView*)webView webViewDelegate:(id<WKNaviga
8688
_webViewDelegate = webViewDelegate;
8789
_webView.navigationDelegate = self;
8890
_base = [[WebViewJavascriptBridgeBase alloc] initWithWebViewType:@"WKWebView" handler:(WVJBHandler)messageHandler resourceBundle:(NSBundle*)bundle];
91+
_base.delegate = self;
8992
}
9093

9194

@@ -162,6 +165,11 @@ - (void)webView:(WKWebView *)webView
162165
}
163166
}
164167

168+
- (void) _evaluateJavascript:(NSString*)javascriptCommand
169+
{
170+
[_webView evaluateJavaScript:javascriptCommand completionHandler:nil];
171+
}
172+
165173

166174

167175
@end

WebViewJavascriptBridge/WebViewJavascriptBridgeBase.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,18 @@ typedef void (^WVJBResponseCallback)(id responseData);
1414
typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback);
1515
typedef NSDictionary WVJBMessage;
1616

17+
18+
// setup delegate
19+
@protocol WebViewJavascriptBridgeBaseDelegate <NSObject>
20+
- (void) _evaluateJavascript:(NSString*)javascriptCommand;
21+
@end
22+
23+
24+
1725
@interface WebViewJavascriptBridgeBase : NSObject
1826

27+
// Delegate property
28+
@property (assign) id <WebViewJavascriptBridgeBaseDelegate> delegate;
1929
@property (strong, nonatomic) NSMutableArray* startupMessageQueue;
2030
@property (strong, nonatomic) NSMutableDictionary* responseCallbacks;
2131
@property (strong, nonatomic) NSMutableDictionary* messageHandlers;

WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,6 @@ - (void)_dispatchMessage:(WVJBMessage*)message {
9898
}
9999

100100

101-
- (void) _evaluateJavascript:(NSString *)javascriptCommand {
102-
NSLog(@"----> TODO: Do this method! DEBUG: Evaluating javascript!");
103-
}
104-
105101
- (void)_flushMessageQueue:(NSString *)messageQueueString{
106102
id messages = [self _deserializeMessageJSON:messageQueueString];
107103
if (![messages isKindOfClass:[NSArray class]]) {
@@ -223,6 +219,10 @@ -(NSString *) webViewJavascriptFetchQueyCommand {
223219
return @"WebViewJavascriptBridge._fetchQueue();";
224220
}
225221

222+
- (void) _evaluateJavascript:(NSString *)javascriptCommand {
223+
[self.delegate _evaluateJavascript:javascriptCommand];
224+
}
225+
226226

227227

228228

0 commit comments

Comments
 (0)