text: //
  //  WebViewJavascriptBridgeBase.h
  //
  //  Created by @LokiMeyburg on 10/15/14.
  //  Copyright (c) 2014 @LokiMeyburg. All rights reserved.
  //
  
  #import <Foundation/Foundation.h>
  
  #define kOldProtocolScheme @"wvjbscheme"
  #define kNewProtocolScheme @"https"
  #define kQueueHasMessage   @"__wvjb_queue_message__"
  #define kBridgeLoaded      @"__bridge_loaded__"
  
  typedef void (^WVJBResponseCallback)(id responseData);
  typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback);
  typedef NSDictionary WVJBMessage;
  
  @protocol WebViewJavascriptBridgeBaseDelegate <NSObject>
  - (NSString*) _evaluateJavascript:(NSString*)javascriptCommand;
  @end
  
  @interface WebViewJavascriptBridgeBase : NSObject
  
  
  @property (weak, nonatomic) id <WebViewJavascriptBridgeBaseDelegate> delegate;
  @property (strong, nonatomic) NSMutableArray* startupMessageQueue;
  @property (strong, nonatomic) NSMutableDictionary* responseCallbacks;
  @property (strong, nonatomic) NSMutableDictionary* messageHandlers;
  @property (strong, nonatomic) WVJBHandler messageHandler;
  @property NSUInteger numRequestsLoading;
  
  - (instancetype)initWithHandler:(WVJBHandler)messageHandler;
  + (void)enableLogging;
  + (void)setLogMaxLength:(int)length;
  - (void)reset;
  - (void)sendData:(id)data responseCallback:(WVJBResponseCallback)responseCallback handlerName:(NSString*)handlerName;
  - (void)flushMessageQueue:(NSString *)messageQueueString;
  - (void)injectJavascriptFile:(BOOL)shouldInject;
  - (void)dispatchStartUpMessageQueue;
  - (BOOL)isWebViewJavascriptBridgeURL:(NSURL*)url;
  - (BOOL)isQueueMessageURL:(NSURL*)urll;
  - (BOOL)isBridgeLoadedURL:(NSURL*)urll;
  - (void)logUnkownMessage:(NSURL*)url;
  - (NSString *)webViewJavascriptCheckCommand;
  - (NSString *)webViewJavascriptFetchQueyCommand;
  - (void)disableJavscriptAlertBoxSafetyTimeout;
  
  @end
  