我的调整发生了崩溃,我相信它发生在这个函数的某个地方:
@implementation UIImage (RenderBatteryImage)
+ (UIImage *) renderBatteryImageForJS:(NSString *)javascript height:(CGFloat)height percentage:(int)percentage charging:(int)charging color:(UIColor *)color colorBg:(int)colorBg {
int low = percentageIsLow(percentage);
CGFloat r, g, b;
[color getRed:&r green:&g blue:&b alpha:nil];
__block UIImage *image;
if([WKWebView class]) {
NSLog(@"LITHIUM: Using WKWebView");
WKWebView *newWebView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:[[WKWebViewConfiguration alloc] init]];
[newWebView loadHTMLString:nil baseURL:nil];
[newWebView evaluateJavaScript:[NSString stringWithFormat:@"(function%@)(%0.0f,%i,!!%i,!%i,[%0.0f,%0.0f,%0.0f],!%i)", javascript, height, percentage, charging, low, r, g, b, colorBg] completionHandler:^(NSString *imageData, NSError *error) {
image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageData]] scale:[UIScreen mainScreen].scale];
}];
[newWebView release];
}
else {
NSLog(@"LITHIUM: Using UIWebView");
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
[webView loadHTMLString:nil baseURL:nil];
image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"(function%@)(%0.0f,%i,!!%i,!%i,[%0.0f,%0.0f,%0.0f],!%i)", javascript, height, percentage, charging, low, r, g, b, colorBg]]]] scale:[UIScreen mainScreen].scale];
[webView release];
}
return image;
}
@end
注意:我不确定这是导致崩溃的函数。
通过查看系统日志,我可以看到LITHIUM: Using WKWebView
崩溃之前记录的日志,所以我认为崩溃发生在第一if
条语句中。
我在这里不正确地使用 WKWebView 吗?此功能可能会崩溃还有其他原因吗?