diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..af65f786 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,10 @@ +machine: + xcode: + version: 9.0 +# dependencies: +# override: +# - brew install kylef/formulae/swiftenv +# - swiftenv install 3.0 +test: + override: + - make test-circle-ci diff --git a/README.md b/README.md index fb14d2de..ca593588 100644 --- a/README.md +++ b/README.md @@ -89,13 +89,13 @@ self.bridge = [WebViewJavascriptBridge bridgeForWebView:webView]; 4) Copy and paste `setupWebViewJavascriptBridge` into your JS: ```javascript -function setupWebViewJavascriptBridge(callback) { +function setupWebViewJavascriptBridge(callback, forCSP=false) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); } window.WVJBCallbacks = [callback]; var WVJBIframe = document.createElement('iframe'); - WVJBIframe.style.display = 'none'; - WVJBIframe.src = 'https://__bridge_loaded__'; + WVJBIframe.style.display = 'none';                  + WVJBIframe.src = forCSP ? 'https://bridge-loaded' : 'https://__bridge_loaded__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0) } diff --git a/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.h b/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.h index 54d80acc..0255975a 100755 --- a/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.h +++ b/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.h @@ -11,6 +11,8 @@ #define kNewProtocolScheme @"https" #define kQueueHasMessage @"__wvjb_queue_message__" #define kBridgeLoaded @"__bridge_loaded__" +#define kQueueHasMessageNew @"wvjb-queue-message" +#define kBridgeLoadedNew @"bridge-loaded" typedef void (^WVJBResponseCallback)(id responseData); typedef void (^WVJBHandler)(id data, WVJBResponseCallback responseCallback); diff --git a/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m b/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m index 3ec26ed4..b791418e 100755 --- a/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m +++ b/WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m @@ -136,12 +136,12 @@ - (BOOL)isSchemeMatch:(NSURL*)url { - (BOOL)isQueueMessageURL:(NSURL*)url { NSString* host = url.host.lowercaseString; - return [self isSchemeMatch:url] && [host isEqualToString:kQueueHasMessage]; + return [self isSchemeMatch:url] && ([host isEqualToString:kQueueHasMessage] || [host isEqualToString:kQueueHasMessageNew]); } - (BOOL)isBridgeLoadedURL:(NSURL*)url { NSString* host = url.host.lowercaseString; - return [self isSchemeMatch:url] && [host isEqualToString:kBridgeLoaded]; + return [self isSchemeMatch:url] && ([host isEqualToString:kBridgeLoaded] || [host isEqualToString:kBridgeLoadedNew]); } - (void)logUnkownMessage:(NSURL*)url {