起因:对企业内部应用进行架构重新设计与重构
位置:旧项目中HR助手的H5功能对接上线 网页中ajax请求未做任何异常处理,移动端点击goback未响应事件
错误异常:旧的h5开发人员由于不规范书写代码,在网页的onLoad中直接创建并且向服务器存储了表单,依赖webview的onUnLoad方法去校验表单是否有效。UIWebView 升级 WKWebView 导致网页中onUnLoad 方法失效。
导致:h5表单不断的创建,没有校验,数据未删除。
处理方案一:换回UIWebView(负责人的开发人员都不会这么处理)
处理方案二:h5页面修改表单处理逻辑(涉及到线上的一些功能,未采用)一劳永逸最优方案
处理方案三:WKWebView调用webview的goBack前先调用以下代码
if ([self.webView canGoBack]) {
// 对工作流应用 onUnload 特殊处理 勿删除
if ([[self.webView.URL absoluteString] hasPrefix:@"http://bpm.enn.cn"]) {
[self.webView evaluateJavaScript:@"AWSFormMainUtil.onUnloadEvent()" completionHandler:^(NSString *message, NSError * _Nullable error) {
ICLog(@"js回调信息 error : %@", error);
}];
}
[self.webView goBack];
} else {
[self.navigationController popViewControllerAnimated:YES];
}