Skip to content

Commit 235cd2d

Browse files
committed
fix a bug 'A JavaScript exception occurred'
1 parent d10eb34 commit 235cd2d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

STMScriptMessageHandler/Source/STMScriptMessageHandler.m

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ - (void)callMethod:(NSString *)methodName parameters:(NSDictionary *)parameters
7272
}
7373
NSString *formatParameter = [self _formatParameters:parameters];
7474
NSString *js = STM_JS_FUNC(%@.%@.nativeCall('%@','%@','%@'), kSTMApp, self.handlerName, methodName, formatParameter, callbackId);
75-
[self.webView evaluateJavaScript:js completionHandler:nil];
75+
[self _evaluateJavaScript:js completionHandler:nil];
7676
[self _debug:@"native call js's method" method:methodName parameters:parameters];
7777
}
7878

@@ -85,7 +85,7 @@ - (void)_response:(NSString *)methodName callbackId:(NSString *)callbackId param
8585
if (callback) { callback('%@'); }
8686
, kSTMApp, self.handlerName, callbackId ?: methodName, formatParameter
8787
);
88-
[self.webView evaluateJavaScript:js completionHandler:nil];
88+
[self _evaluateJavaScript:js completionHandler:nil];
8989
}
9090

9191
- (void)_addJS1 {
@@ -159,6 +159,13 @@ - (void)_addJSScript:(NSString *)jsScript forMainFrameOnly:(BOOL)flag {
159159
[self.webView.configuration.userContentController addUserScript:userScript];
160160
}
161161

162+
- (void)_evaluateJavaScript:(NSString *)javaScriptString
163+
completionHandler:(void (^ _Nullable)(_Nullable id info, NSError * _Nullable error))completionHandler {
164+
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
165+
[self.webView evaluateJavaScript:javaScriptString completionHandler:completionHandler];
166+
});
167+
}
168+
162169
- (NSString *)_formatParameters:(NSDictionary *)parameters {
163170
NSString *formatParameter = nil;;
164171
if ([NSJSONSerialization isValidJSONObject:parameters]) {

0 commit comments

Comments
 (0)