on master help sign in
Use dispatch_async to eval js on main thread
3835a50Hamish Mackenzie
jsaddle-wkwebview/cbits/WKWebView.m+8−2
@@ -46,11 +46,17 @@ void addJSaddleHandler(WKWebView *webView, HsStablePtr startHandler, HsStablePtr
46}
46}
47
47
48void evaluateJavaScript(WKWebView *webView, const char * _Nonnull js) {
48void 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+ });
50}
53}
51
54
52void loadHTMLString(WKWebView *webView, const char * _Nonnull html) {
55void 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+ });
54}
60}
55
61
56const char * mainBundleResourcePathC() {
62const char * mainBundleResourcePathC() {