Browse Source

fix(iOS): run injectedJavaScript and injectedJavaScriptBeforeContentLoaded at right moments (and don't run on didFinishNavigation)

Jamie Birch 5 years ago
parent
commit
8c082613a7
1 changed files with 3 additions and 12 deletions
  1. 3
    12
      ios/RNCWebView.m

+ 3
- 12
ios/RNCWebView.m View File

@@ -911,16 +911,7 @@ static NSDictionary* customCertificatesForHost;
911 911
 - (void)webView:(WKWebView *)webView
912 912
   didFinishNavigation:(WKNavigation *)navigation
913 913
 {
914
-   if (_injectedJavaScript) {
915
-     [self evaluateJS: _injectedJavaScript thenCall: ^(NSString *jsEvaluationValue) {
916
-       NSMutableDictionary *event = [self baseEvent];
917
-       event[@"jsEvaluationValue"] = jsEvaluationValue;
918
-
919
-       if (self.onLoadingFinish) {
920
-         self.onLoadingFinish(event);
921
-       }
922
-     }];
923
-   } else if (_onLoadingFinish) {
914
+  if (_onLoadingFinish) {
924 915
     _onLoadingFinish([self baseEvent]);
925 916
   }
926 917
 }
@@ -972,7 +963,7 @@ static NSDictionary* customCertificatesForHost;
972 963
   _injectedJavaScript = script;
973 964
   
974 965
   self.atStartScript = script == nil ? nil : [[WKUserScript alloc] initWithSource:script
975
-      injectionTime:WKUserScriptInjectionTimeAtDocumentStart
966
+      injectionTime:WKUserScriptInjectionTimeAtDocumentEnd
976 967
     forMainFrameOnly:_injectedJavaScriptForMainFrameOnly];
977 968
   
978 969
   [self resetupScripts];
@@ -982,7 +973,7 @@ static NSDictionary* customCertificatesForHost;
982 973
   _injectedJavaScriptBeforeContentLoaded = script;
983 974
   
984 975
   self.atEndScript = script == nil ? nil : [[WKUserScript alloc] initWithSource:script
985
-       injectionTime:WKUserScriptInjectionTimeAtDocumentEnd
976
+       injectionTime:WKUserScriptInjectionTimeAtDocumentStart
986 977
     forMainFrameOnly:_injectedJavaScriptBeforeContentLoadedForMainFrameOnly];
987 978
   
988 979
   [self resetupScripts];