主播卡片弹窗时间限制,卡片进房闪退处理
This commit is contained in:
@@ -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];
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user