【问题标题】:evaluateJavaScript plots data slow(very slow) on WkWebviewevaluateJavaScript 在 WkWebview 上绘制数据缓慢(非常慢)
【发布时间】:2019-10-31 14:02:09
【问题描述】:

以前我们使用 webview 加载本地 HTML 文件并评估其上的 Json 数据,这工作正常,但现在我们使用 WKWebview 并加载本地 HTML 文件并评估其上的 Json 数据,但与 Webview 相比,它的加载速度非常慢.

WebView 的代码片段:

 NSURL *instructionsURL = [NSURL fileURLWithPath:path];                   
 NSURLRequest *req = [NSURLRequest requestWithURL:instructionsURL];
 [self.webViewHistory loadRequest:req];

NSString *js = [NSString stringWithFormat:@"activeDataDisplay(%@)", jsonActivityDataString];
[self.webViewHistory stringByEvaluatingJavaScriptFromString:js];

WkWebview 的代码片段:

 NSURL *instructionsURL = [NSURL fileURLWithPath:path];
 NSURLRequest *req = [NSURLRequest requestWithURL:instructionsURL];
 [self.wkWebHistory loadRequest:req];

 NSString *js = [NSString stringWithFormat:@"activeDataDisplay(%@)", jsonActivityDataString];

[self.wkWebHistory evaluateJavaScript:js completionHandler:^(NSString *result, NSError *error) {
             NSLog(@“Completion”);
         }];

对此有任何帮助或解决方法吗?还是有其他方法?感谢Adv.

【问题讨论】:

    标签: javascript ios objective-c wkwebview


    【解决方案1】:

    我自己找到了答案。

    我们需要在

    中评估JS
    - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    }
    

    代替

    - (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation {
    }
    

    当我们试图在didCommitNavigation 中评估它时,DOM 尚未准备好,因此evaluateJavaScript 给出了错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      • 2021-11-11
      • 2019-08-11
      • 2010-10-31
      相关资源
      最近更新 更多