on master help sign in
Use dispatch_async to eval js on main thread
commit3835a5061d17f565794a17f6abbce5786ad2496c authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateSat 18 Feb 2017, 11:55 (10 years ago) parent087d653
1 file changed+8−2
jsaddle-wkwebview/cbits/WKWebView.m+8−2
jsaddle-wkwebview/cbits/WKWebView.m+8−2
@@ -46,11 +46,17 @@ void addJSaddleHandler(WKWebView *webView, HsStablePtr startHandler, HsStablePtr
4646}
4747
4848void evaluateJavaScript(WKWebView *webView, const char * _Nonnull js) {
49− [webView evaluateJavaScript:[NSString stringWithCString:js encoding:NSUTF8StringEncoding] completionHandler:NULL];
49+ NSString *jsString = [NSString stringWithCString:js encoding:NSUTF8StringEncoding];
50+ dispatch_async(dispatch_get_main_queue(), ^{
51+ [webView evaluateJavaScript:jsString completionHandler:NULL];
52+ });
5053}
5154
5255void loadHTMLString(WKWebView *webView, const char * _Nonnull html) {
53− [webView loadHTMLString:[NSString stringWithCString:html encoding:NSUTF8StringEncoding] baseURL:NULL];
56+ NSString *htmlString = [NSString stringWithCString:html encoding:NSUTF8StringEncoding];
57+ dispatch_async(dispatch_get_main_queue(), ^{
58+ [webView loadHTMLString:htmlString baseURL:NULL];
59+ });
5460}
5561
5662const char * mainBundleResourcePathC() {