主播卡片弹窗时间限制,卡片进房闪退处理

This commit is contained in:
chenguilong
2022-08-03 18:33:59 +08:00
parent e892c69629
commit f3e1d3d204
2 changed files with 29 additions and 18 deletions

View File

@@ -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];
}

View File

@@ -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;
}
}