起因:對企業(yè)內(nèi)部應(yīng)用進(jìn)行架構(gòu)重新設(shè)計與重構(gòu)
位置:舊項目中HR助手的H5功能對接上線 網(wǎng)頁中ajax請求未做任何異常處理,移動端點擊goback未響應(yīng)事件
錯誤異常:舊的h5開發(fā)人員由于不規(guī)范書寫代碼,在網(wǎng)頁的onLoad中直接創(chuàng)建并且向服務(wù)器存儲了表單,依賴webview的onUnLoad方法去校驗表單是否有效。UIWebView 升級 WKWebView 導(dǎo)致網(wǎng)頁中onUnLoad 方法失效。
導(dǎo)致:h5表單不斷的創(chuàng)建,沒有校驗,數(shù)據(jù)未刪除。
處理方案一:換回UIWebView(負(fù)責(zé)人的開發(fā)人員都不會這么處理)
處理方案二:h5頁面修改表單處理邏輯(涉及到線上的一些功能,未采用)一勞永逸最優(yōu)方案
處理方案三:WKWebView調(diào)用webview的goBack前先調(diào)用以下代碼
if ([self.webView canGoBack]) {
// 對工作流應(yīng)用 onUnload 特殊處理 勿刪除
if ([[self.webView.URL absoluteString] hasPrefix:@"http://bpm.enn.cn"]) {
[self.webView evaluateJavaScript:@"AWSFormMainUtil.onUnloadEvent()" completionHandler:^(NSString *message, NSError * _Nullable error) {
ICLog(@"js回調(diào)信息 error : %@", error);
}];
}
[self.webView goBack];
} else {
[self.navigationController popViewControllerAnimated:YES];
}