evaluateJavaScript 在 WkWebview 上绘制数据缓慢(非常慢)
evaluateJavaScript plots data slow(very slow) on WkWebview
以前我们使用 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.
我自己找到了答案。
我们需要评估
中的 JS
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
}
而不是
- (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation {
}
DOM 尚未准备好,而我们正在尝试在 didCommitNavigation
中对其进行评估,因此 evaluateJavaScript
出现错误。
以前我们使用 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.
我自己找到了答案。
我们需要评估
中的 JS- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
}
而不是
- (void)webView:(WKWebView *)webView didCommitNavigation:(null_unspecified WKNavigation *)navigation {
}
DOM 尚未准备好,而我们正在尝试在 didCommitNavigation
中对其进行评估,因此 evaluateJavaScript
出现错误。