From 92a005550ec2365aae154a3502cd28ccf82cd821 Mon Sep 17 00:00:00 2001 From: SweenyYang <32320149+yangxyo@users.noreply.github.com> Date: Thu, 1 Aug 2024 16:38:28 +0800 Subject: [PATCH 1/4] Update README.md Update the JS code to be CSP compliant. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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) } From d9908b100f1043ad168f1189bf9b994fb85f824d Mon Sep 17 00:00:00 2001 From: SweenyYang <32320149+yangxyo@users.noreply.github.com> Date: Thu, 1 Aug 2024 16:39:43 +0800 Subject: [PATCH 2/4] Update WebViewJavascriptBridgeBase.h Update WebViewJavascriptBridgeBase.h to be CSP compliant. --- WebViewJavascriptBridge/WebViewJavascriptBridgeBase.h | 2 ++ 1 file changed, 2 insertions(+) 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); From 85ae32d2e2f5ec2b18e2f0f04c534f1eeb9ce18e Mon Sep 17 00:00:00 2001 From: SweenyYang <32320149+yangxyo@users.noreply.github.com> Date: Thu, 1 Aug 2024 16:41:14 +0800 Subject: [PATCH 3/4] Update WebViewJavascriptBridgeBase.m Update WebViewJavascriptBridgeBase.m to be CSP compliant. --- WebViewJavascriptBridge/WebViewJavascriptBridgeBase.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 { From 49b8a8b38e49d9b0ffc7c6a6ac73e6348dcc56a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=AC=A3=E9=9B=A8=28yangxinyu01=29?= Date: Thu, 1 Aug 2024 17:17:08 +0800 Subject: [PATCH 4/4] add .circleci/config.yml --- .circleci/config.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .circleci/config.yml 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