diff --git a/v2/internal/frontend/desktop/darwin/Application.m b/v2/internal/frontend/desktop/darwin/Application.m index f296382ac..b2629f305 100644 --- a/v2/internal/frontend/desktop/darwin/Application.m +++ b/v2/internal/frontend/desktop/darwin/Application.m @@ -39,8 +39,9 @@ void ProcessURLResponse(void *inctx, const char *url, const char *contentType, c void ExecJS(void* inctx, const char *script) { WailsContext *ctx = (__bridge WailsContext*) inctx; + NSString *nsscript = [NSString stringWithUTF8String:script]; ON_MAIN_THREAD( - [ctx ExecJS:script]; + [ctx ExecJS:nsscript]; ); } diff --git a/v2/internal/frontend/desktop/darwin/WailsContext.h b/v2/internal/frontend/desktop/darwin/WailsContext.h index d67b4a466..e26d9d089 100644 --- a/v2/internal/frontend/desktop/darwin/WailsContext.h +++ b/v2/internal/frontend/desktop/darwin/WailsContext.h @@ -75,7 +75,7 @@ - (void) loadRequest:(NSString*)url; - (void) processURLResponse:(NSString *)url :(NSString *)contentType :(NSData*)data; -- (void) ExecJS:(const char*)script; +- (void) ExecJS:(NSString*)script; - (NSScreen*) getCurrentScreen; - (void) SetAbout :(const char*)title :(const char*)description :(void*)imagedata :(int)datalen; diff --git a/v2/internal/frontend/desktop/darwin/WailsContext.m b/v2/internal/frontend/desktop/darwin/WailsContext.m index bc0ebc95e..7d117b643 100644 --- a/v2/internal/frontend/desktop/darwin/WailsContext.m +++ b/v2/internal/frontend/desktop/darwin/WailsContext.m @@ -362,9 +362,10 @@ } } -- (void) ExecJS:(const char*)script { - NSString *nsscript = [NSString stringWithUTF8String:script]; - [self.webview evaluateJavaScript:nsscript completionHandler:nil]; +- (void) ExecJS:(NSString*)script { + ON_MAIN_THREAD( + [self.webview evaluateJavaScript:script completionHandler:nil]; + ) } - (void) processURLResponse:(NSString *)url :(NSString *)contentType :(NSData *)data {