From f3e1d3d2044dbf54db68e3839c63baf97ef8de66 Mon Sep 17 00:00:00 2001 From: chenguilong <598604202@qq.com> Date: Wed, 3 Aug 2022 18:33:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E6=92=AD=E5=8D=A1=E7=89=87=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E6=97=B6=E9=97=B4=E9=99=90=E5=88=B6=EF=BC=8C=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E8=BF=9B=E6=88=BF=E9=97=AA=E9=80=80=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tabbar/View/AnchorCard/XPAnchorCardView.m | 3 +- .../Main/Tabbar/View/TabbarViewController.m | 44 ++++++++++++------- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/xplan-ios/Main/Tabbar/View/AnchorCard/XPAnchorCardView.m b/xplan-ios/Main/Tabbar/View/AnchorCard/XPAnchorCardView.m index 51e49cc7..71092f72 100644 --- a/xplan-ios/Main/Tabbar/View/AnchorCard/XPAnchorCardView.m +++ b/xplan-ios/Main/Tabbar/View/AnchorCard/XPAnchorCardView.m @@ -56,7 +56,7 @@ - (void)dealloc { if (self.timer) { dispatch_source_cancel(self.timer); -// self.timer = nil; + self.timer = nil; } self.isPlaying = NO; [self.noteImaegView stopAnimating]; @@ -64,6 +64,7 @@ - (void)removeFromSuperview { [super removeFromSuperview]; + [self resumeTimer]; if (self.isPlaying) { [[XPSkillCardPlayerManager shareInstance] stopMusic]; } diff --git a/xplan-ios/Main/Tabbar/View/TabbarViewController.m b/xplan-ios/Main/Tabbar/View/TabbarViewController.m index 2e34b4fa..712e7b5d 100644 --- a/xplan-ios/Main/Tabbar/View/TabbarViewController.m +++ b/xplan-ios/Main/Tabbar/View/TabbarViewController.m @@ -67,6 +67,8 @@ UIKIT_EXTERN NSString * kUserCompleteInfoFinishKey; NSString * const kUserFirstLoginKey = @"kUserFirstLoginKey"; +NSString * const kHadLaunchApp = @"kHadLaunchApp"; +NSString * const kLastShowAnchorCardTime = @"kLastShowAnchorCardTime"; UIKIT_EXTERN NSString * kHomeMoreScrollPageKey; UIKIT_EXTERN NSString * kNewUserRechargeKey; UIKIT_EXTERN NSString *kTabShowAnchorCardKey; @@ -84,8 +86,6 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; @property (nonatomic, assign) BOOL needShowAnchorCard; ///延迟弹出主播卡片 @property (nonatomic, assign) BOOL delayShowAnchorCard; -///第二次启动弹出主播卡片 -@property (nonatomic, assign) BOOL secondLaunchShowAnchorCard; ///主播卡片 @property (nonatomic, strong) XPAnchorCardView *anchorCardView; ///任务完成提示 @@ -105,7 +105,6 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; [[NIMSDK sharedSDK].systemNotificationManager addDelegate:self]; [self.presenter juliandAdCallBackApi]; [self.view addSubview:self.roomMineView]; - [self configSecondLaunchShowAnchorCard]; [[NSNotificationCenter defaultCenter] addObserverForName:kRoomMiniNotificationKey object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { [self configRoomMiniNView:note.userInfo]; }]; @@ -130,7 +129,6 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; self.delayShowAnchorCard = NO; - self.secondLaunchShowAnchorCard = NO; [self.anchorCardView removeFromSuperview]; self.anchorCardView = nil; } @@ -143,16 +141,18 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; vc.hadAnimate = YES; [self.selectedViewController.navigationController presentViewController:vc animated:YES completion:nil]; } - if (self.needShowAnchorCard && !self.delayShowAnchorCard) { - [self.presenter getAnchorCardInfo]; - } - if (self.secondLaunchShowAnchorCard) { + if ([self hadLaunchApp] && (self.selectedIndex == 0 | self.selectedIndex == 1) && [self canShowAnchorCard]) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ if (self.view.window && self.isViewLoaded) { [self.presenter getAnchorCardInfo]; } }); } + if (self.needShowAnchorCard && !self.delayShowAnchorCard) { + [self.presenter getAnchorCardInfo]; + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kHadLaunchApp];///第一次弹主播卡片 + [[NSUserDefaults standardUserDefaults] synchronize]; + } } - (MainPresenter *)presenter { @@ -263,6 +263,9 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; [self shakeAction]; } }]; + long time = (long)([[NSDate date] timeIntervalSince1970]*1000); + [[NSUserDefaults standardUserDefaults] setObject:@(time) forKey:kLastShowAnchorCardTime]; + [[NSUserDefaults standardUserDefaults] synchronize]; self.anchorCardView.cardInfo = cardInfo; [self.view addSubview:self.anchorCardView]; UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleAnchorCardSwipeFrom:)]; @@ -566,16 +569,23 @@ UIKIT_EXTERN NSString *kTabShowAnchorCardKey; } ///判断第二次启动时弹出主播卡片 -- (void)configSecondLaunchShowAnchorCard { +- (BOOL)hadLaunchApp { + return [[NSUserDefaults standardUserDefaults] valueForKey:kHadLaunchApp]; +} + +- (BOOL)canShowAnchorCard { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - NSNumber *launch = [defaults valueForKey:@"secondLaunchApp"]; - if (!launch) {///第一次启动 - [defaults setValue:@(1) forKey:@"secondLaunchApp"]; - [defaults synchronize]; - } else if([launch integerValue] == 1){///第二次启动 - [[NSUserDefaults standardUserDefaults] setValue:@(2) forKey:@"secondLaunchApp"]; - [defaults synchronize]; - self.secondLaunchShowAnchorCard = YES; + NSNumber *lastTime = [defaults objectForKey:kLastShowAnchorCardTime]; + if ([lastTime longValue] < 1) { + return NO; + } + NSDate *datenow = [NSDate date];//现在时间 + long time2 = (long)([datenow timeIntervalSince1970]*1000); + long aTime = (time2 - [lastTime longValue]) / 1000; + if (aTime > 15*60) { + return YES; + } else { + return NO; } }