升級Cordova6.1后,測試ios 10手機系統(tǒng),發(fā)現(xiàn)閃退,調(diào)試發(fā)現(xiàn)是ios內(nèi)部寫法不嚴(yán)謹導(dǎo)致的。
原因如下:
在CDVViewController. m 的 viewDidLoad 中,未經(jīng)系統(tǒng)版本判斷,直接使用 colorNamed 方法設(shè)置顏色,此方法在ios11之后才有,所以導(dǎo)致程式崩潰,解決方案如下:
// ///////////////// 調(diào)整ios 10 閃退
UIColor* bgColor = [[UIColor alloc]init];
if (@available(iOS 11.0,*)) {
//此方法是 ios 11之後才有的,cordova未經(jīng)版本判斷,直接崩潰
bgColor = [UIColor colorNamed:@"BackgroundColor"] ?: UIColor.whiteColor;
}else{
bgColor = [UIColor whiteColor];
}