Commit 2db98064 cgx

优化网络异常h5页面无法返回

1 个父辈 03525e60
......@@ -18,6 +18,8 @@
@property (nonatomic, strong) NSMutableURLRequest *request;
@property (nonatomic, strong) UIProgressView *progressView;
@property (nonatomic, strong) ExceptionDefaultView *exceptionView;
/// 白天/夜间模式导航栏返回按钮
@property (nonatomic, strong) UIButton *dkBackBtn;
@end
@implementation DsWebController
......@@ -47,6 +49,9 @@
[self.view addSubview:self.webView];
[self.view addSubview:self.progressView];
if (self.isShowNavi == NO) {
[self.view addSubview:self.dkBackBtn];
}
[self.webView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view).insets(UIEdgeInsetsMake(0, 0, 0, 0));
......@@ -61,19 +66,10 @@
[self.webView removeObserver:self forKeyPath:@"estimatedProgress"];
}
#pragma mark - 关闭侧滑
- (BOOL)enableInteractivePopGestureRecognizer {
return NO;
}
#pragma mark - 隐藏导航栏
- (BOOL)isShowNavigationBar {
return !self.isShowNavi;
}
#pragma mark - H5页面导航栏为默认模式
- (NaviStyle)navigationBarStyle {
return NaviStyleDefault;
- (void)closeCurrentPage {
if (self.navigationController.viewControllers.count) {
[self.navigationController popViewControllerAnimated:YES];
}
}
#pragma mark - WKWebView的监听方法
......@@ -94,6 +90,7 @@
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
self.exceptionView.hidden = YES;
if (self.isShowNavi == NO) { self.dkBackBtn.hidden = YES; }
[DsMaskView showMaskWithSuperView:self.view];
self.webView.hidden = NO;
}
......@@ -102,6 +99,7 @@
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
DSLog(@"加载失败:%@", error.userInfo);
self.exceptionView.hidden = NO;
if (self.isShowNavi == NO) { self.dkBackBtn.hidden = NO; }
}
#pragma mark - WKScriptMessageHandler
......@@ -110,7 +108,7 @@
NSDictionary *bodyDic = message.body;
int type = [bodyDic[@"type"] intValue];
DSLog(@"bodyDic:%@", bodyDic);
if (type == 88) {
if (type == 88) { // 新开webview,关闭
if (self.refreshDelegate && [self.refreshDelegate respondsToSelector:@selector(reloadAIPage)]) {
[self.refreshDelegate reloadAIPage];
}
......@@ -167,10 +165,41 @@
weakSelf.progressView.hidden = NO;
weakSelf.progressView.progress = 0;
weakSelf.exceptionView.hidden = YES;
if (weakSelf.isShowNavi == NO) { weakSelf.dkBackBtn.hidden = YES; }
[weakSelf.webView loadRequest:weakSelf.request];
} superView:self.view];
}
return _exceptionView;
}
- (UIButton *)dkBackBtn {
if (!_dkBackBtn) {
_dkBackBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, kStatusBarHeight, 40, 40)];
[_dkBackBtn dk_setImage:DKImagePickerWithNames(@"cus_back_icon", @"dk_cus_back_icon", @"dk_cus_back_icon") forState:UIControlStateNormal];
[_dkBackBtn addTarget:self action:@selector(closeCurrentPage) forControlEvents:UIControlEventTouchUpInside];
_dkBackBtn.hidden = YES;
}
return _dkBackBtn;
}
#pragma mark - 关闭侧滑
- (BOOL)enableInteractivePopGestureRecognizer {
return NO;
}
#pragma mark - 隐藏导航栏
- (BOOL)isShowNavigationBar {
return !self.isShowNavi;
}
#pragma mark - H5页面导航栏为默认模式
- (NaviStyle)navigationBarStyle {
return NaviStyleDefault;
}
#pragma mark - 设置状态栏文字颜色
- (UIStatusBarStyle)preferredStatusBarStyle {
return [self.dk_manager.themeVersion isEqualToString:DKThemeVersionNormal] ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent;
}
@end
......@@ -25,6 +25,8 @@
- (void)viewDidLoad {
[super viewDidLoad];
self.view.dk_backgroundColorPicker = DKColorPickerWithKey(VCViewBG);
// 创建WKWebView对象,添加到界面(storyboard没有控件)
[self.view addSubview:self.aiWebView];
[self.view addSubview:self.progressView];
......@@ -39,21 +41,6 @@
[[NSNotificationCenter defaultCenter] removeObserver:self name:NeedUpdateAICoach object:nil];
}
#pragma mark - 关闭侧滑
- (BOOL)enableInteractivePopGestureRecognizer {
return NO;
}
#pragma mark - 隐藏导航栏
- (BOOL)isShowNavigationBar {
return YES;
}
#pragma mark - 品牌模式
- (NaviStyle)navigationBarStyle {
return NaviStyleDefault;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
......@@ -134,6 +121,7 @@
- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
self.exceptionView.hidden = NO;
self.aiWebView.hidden = YES;
DSLog(@"加载失败:%@", error);
}
......@@ -247,4 +235,24 @@
return _exceptionView;
}
#pragma mark - 关闭侧滑
- (BOOL)enableInteractivePopGestureRecognizer {
return NO;
}
#pragma mark - 隐藏导航栏
- (BOOL)isShowNavigationBar {
return YES;
}
#pragma mark - 品牌模式
- (NaviStyle)navigationBarStyle {
return NaviStyleDefault;
}
#pragma mark - 设置状态栏文字颜色
- (UIStatusBarStyle)preferredStatusBarStyle {
return [self.dk_manager.themeVersion isEqualToString:DKThemeVersionNormal] ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent;
}
@end
......@@ -256,7 +256,7 @@
_sliderView = [UISlider new];
[_sliderView cornerRadius:2.0];
_sliderView.minimumTrackTintColor = BrandColor;
_sliderView.dk_maximumTrackTintColorPicker = DKColorPickerWithColors(ColorFromHex(0xE3E1E1), ColorFromHex(0x131724), DSWhite);
_sliderView.maximumTrackTintColor = ColorFromHex(0xE3E1E1);
[_sliderView setThumbImage:[UIImage imageNamed:@"muse_slider_thumbImage"] forState:UIControlStateNormal];
[_sliderView addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];
[_sliderView addTarget:self action:@selector(sliderTouchDown:) forControlEvents:UIControlEventTouchDown];
......
......@@ -95,7 +95,7 @@
if (!_portraitIV) {
_portraitIV = [UIImageView new];
_portraitIV.dk_alphaPicker = DKAlphaPickerWithAlphas(1, .5, .5);
[_portraitIV yy_setImageWithURL:[NSURL URLWithString:[LoginUtils getFaceImg]] placeholder:[UIImage imageNamed:@"portrait"]];
[_portraitIV yy_setImageWithURL:[NSURL URLWithString:[LoginUtils getFaceImg]] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
[_portraitIV cornerRadius:145/2.0];
}
return _portraitIV;
......
......@@ -25,7 +25,7 @@
if (self = [super initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight - kTopHeight(0))]) {
_delegate = delegate;
[self.portraitIV yy_setImageWithURL:[NSURL URLWithString:[LoginUtils getFaceImg]] placeholder:[UIImage imageNamed:@"portrait"]];
[self.portraitIV yy_setImageWithURL:[NSURL URLWithString:[LoginUtils getFaceImg]] placeholder:[UIImage imageNamed:@"basicPlaceholder"]];
[self addSubview:self.userInfoTV];
[self addSubview:self.layoutBtn];
......
{
"images" : [
{
"filename" : "portrait.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "portrait@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "portrait@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!