Closed jhz-libowen closed 4 years ago
问下kwebkit://reuse-webView 是什么链接
我改了下getReusedWebViewForHolder ,作者看下有没有问题
- (__kindof LKWKWebView *)getReusedWebViewForHolder:(id)holder{
if (!holder) {
#if DEBUG
NSLog(@"MSWKWebViewPool must have a holder");
#endif
return nil;
}
[self _tryCompactWeakHolders];
LKWKWebView *webView;
dispatch_semaphore_wait(_lock, DISPATCH_TIME_FOREVER);
if (_reusableWebViewSet.count > 0) {
webView = (LKWKWebView *)[_reusableWebViewSet anyObject];
if (webView.isLoading) {
[webView stopLoading];
[_reusableWebViewSet removeObject:webView];
webView = nil;
[_visiableWebViewSet removeAllObjects];
webView = [[LKWKWebView alloc] initWithFrame:CGRectZero configuration:[self webViewConfiguration]];
[_visiableWebViewSet addObject:webView];
}else {
[_reusableWebViewSet removeObject:webView];
[_visiableWebViewSet addObject:webView];
[webView webViewWillReuse];
}
} else {
[_visiableWebViewSet removeAllObjects];
webView = [[LKWKWebView alloc] initWithFrame:CGRectZero configuration:[self webViewConfiguration]];
[_visiableWebViewSet addObject:webView];
}
webView.holderObject = holder;
dispatch_semaphore_signal(_lock);
[webView lk_syncCustomUserAgentWithType:(CustomUserAgentTypeAppend) customUserAgent:@"WKWebView"];
//1.桥接
[[LKWebViewJSBridgeManager shared] configBridgeWithWebView:webView];
return webView;
}
这里正在优化,最近会发布新版本。
发布新版本了。
getReusedWebViewForHolder 方法获取webview的时候有可能会获取一个没有清空的webview,效果就是打开第一个页面马上关闭打开第二个页面会出现第一个页面的遗留页面,然后再出现第二个页面。
一般连续打开不同的页面会出现。
目前我想到的解决办法是在webViewEndReuse方法里[self loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]]清空页面
问下作者kwebkit://reuse-webView这个是源码里用来清空页面的,我没搜到相关内容