Commit a8cfe1a3 by ludi

完成首页推荐

parent 9b29687f
Showing with 406 additions and 48 deletions
...@@ -252,4 +252,9 @@ ...@@ -252,4 +252,9 @@
return [NSDate date].timeIntervalSince1970 - downloadDate; return [NSDate date].timeIntervalSince1970 - downloadDate;
} }
- (void)setSettingInitDataModel:(FUSSettingInitDataModel *)settingInitDataModel {
_settingInitDataModel = settingInitDataModel;
[FUSSwiftCacheDataShare share].oc_settingInitDataModel = settingInitDataModel;
}
@end @end
...@@ -31,6 +31,11 @@ import SwiftyJSON ...@@ -31,6 +31,11 @@ import SwiftyJSON
get{ FUSSwiftCacheDataShare.share.settingData.value } get{ FUSSwiftCacheDataShare.share.settingData.value }
set{ FUSSwiftCacheDataShare.share.settingData.accept(newValue) } set{ FUSSwiftCacheDataShare.share.settingData.accept(newValue) }
} }
/// 启动缓存的一些信息
@objc public var oc_settingInitDataModel: FUSSettingInitDataModel? {
get { self.settingInitDataModel.value }
set { self.settingInitDataModel.accept(newValue) }
}
/// 用户信息未填写提醒 /// 用户信息未填写提醒
@objc public var oc_remindToData: FUSRemindToDataModel? { @objc public var oc_remindToData: FUSRemindToDataModel? {
get{ FUSSwiftCacheDataShare.share.remindToData.value } get{ FUSSwiftCacheDataShare.share.remindToData.value }
...@@ -101,6 +106,8 @@ import SwiftyJSON ...@@ -101,6 +106,8 @@ import SwiftyJSON
public let userInfo: BehaviorRelay<FUSUserInfosModel?> = .init(value: nil) public let userInfo: BehaviorRelay<FUSUserInfosModel?> = .init(value: nil)
/// 用户设置,现在暂时只做了部分属性的跟踪,如定位,其他属性需要做到的时候补全 /// 用户设置,现在暂时只做了部分属性的跟踪,如定位,其他属性需要做到的时候补全
public let settingData: BehaviorRelay<FUSSettingDataModel?> = .init(value: nil) public let settingData: BehaviorRelay<FUSSettingDataModel?> = .init(value: nil)
/// 启动缓存的一些信息
public let settingInitDataModel: BehaviorRelay<FUSSettingInitDataModel?> = .init(value: nil)
/// 用户信息未填写提醒 /// 用户信息未填写提醒
public let remindToData: BehaviorRelay<FUSRemindToDataModel?> = .init(value: nil) public let remindToData: BehaviorRelay<FUSRemindToDataModel?> = .init(value: nil)
/// 校验是否已更新账号资料 /// 校验是否已更新账号资料
...@@ -203,6 +210,13 @@ import SwiftyJSON ...@@ -203,6 +210,13 @@ import SwiftyJSON
/// 网页或者其他地方分享的 类型,配合recommendRoomId使用 /// 网页或者其他地方分享的 类型,配合recommendRoomId使用
@objc public var recommendReqEventType: Int = 0 @objc public var recommendReqEventType: Int = 0
/// 今天是否点击过领取7天签到
public var todayDidClickedSevenDayCheckin: BehaviorRelay<Bool> = .init(value: false)
@objc public var oc_todayDidClickedSevenDayCheckin: Bool {
get { self.todayDidClickedSevenDayCheckin.value }
set { self.todayDidClickedSevenDayCheckin.accept(newValue) }
}
// - base // - base
public override init() { public override init() {
super.init() super.init()
......
...@@ -61,8 +61,10 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -61,8 +61,10 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Public Methods #pragma mark - Public Methods
- (void)fus_enterLiveRoom:(NSString *)roomId; - (void)fus_enterLiveRoom:(NSString *)roomId;
- (void)fus_enterLiveRoom:(NSString *)roomId behaviorSrc:(NSString *)behaviorSrc; - (void)fus_enterLiveRoom:(NSString *)roomId behaviorSrc:(NSString *)behaviorSrc;
- (void)fus_enterLiveRoom:(NSString *)roomId behaviorSrc:(NSString *)behaviorSrc otherInfo:(NSDictionary * __nullable)otherInfo;
- (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)model; - (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)model;
- (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)model behaviorSrc:(NSString *)behaviorSrc; - (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)model behaviorSrc:(NSString *)behaviorSrc;
- (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)model behaviorSrc:(NSString *)behaviorSrc otherInfo:(NSDictionary * __nullable)otherInfo;
/** /**
结束观看直播 结束观看直播
*/ */
...@@ -105,6 +107,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -105,6 +107,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)fus_setLaunchCompleteRecommendLiveRoom:(NSInteger)tag; - (void)fus_setLaunchCompleteRecommendLiveRoom:(NSInteger)tag;
/// 第一次启动的时候,完成了网页分享房间的操作,0=初始化,1= 有网页分享并进入,2=没有网页分享并且完成了 /// 第一次启动的时候,完成了网页分享房间的操作,0=初始化,1= 有网页分享并进入,2=没有网页分享并且完成了
- (void)fus_setLaunchCompleteWebShareLiveRoom:(NSInteger)tag; - (void)fus_setLaunchCompleteWebShareLiveRoom:(NSInteger)tag;
/// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false
- (void)fus_setIsManualLoginBehavior:(BOOL)action;
#pragma mark - HTTP #pragma mark - HTTP
/** /**
......
...@@ -673,7 +673,7 @@ ...@@ -673,7 +673,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements; CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 202506260033; CURRENT_PROJECT_VERSION = 202506260034;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC; DEVELOPMENT_TEAM = 6GG26BHUMC;
ENABLE_ON_DEMAND_RESOURCES = NO; ENABLE_ON_DEMAND_RESOURCES = NO;
...@@ -938,7 +938,7 @@ ...@@ -938,7 +938,7 @@
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements; CODE_SIGN_ENTITLEMENTS = FuSiLive/FuSiLive.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 202506260033; CURRENT_PROJECT_VERSION = 202506260034;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 6GG26BHUMC; DEVELOPMENT_TEAM = 6GG26BHUMC;
ENABLE_ON_DEMAND_RESOURCES = NO; ENABLE_ON_DEMAND_RESOURCES = NO;
......
...@@ -50,6 +50,9 @@ ...@@ -50,6 +50,9 @@
004773222F5C0C2000E46A79 /* fus_home_navi_startLive_animate.webp in Resources */ = {isa = PBXBuildFile; fileRef = 004773212F5C0C2000E46A79 /* fus_home_navi_startLive_animate.webp */; }; 004773222F5C0C2000E46A79 /* fus_home_navi_startLive_animate.webp in Resources */ = {isa = PBXBuildFile; fileRef = 004773212F5C0C2000E46A79 /* fus_home_navi_startLive_animate.webp */; };
004773242F5C262300E46A79 /* home_list_pk_show_type1_anim.webp in Resources */ = {isa = PBXBuildFile; fileRef = 004773232F5C262300E46A79 /* home_list_pk_show_type1_anim.webp */; }; 004773242F5C262300E46A79 /* home_list_pk_show_type1_anim.webp in Resources */ = {isa = PBXBuildFile; fileRef = 004773232F5C262300E46A79 /* home_list_pk_show_type1_anim.webp */; };
004773262F5C281300E46A79 /* liveRoom_newComer_gift_animate.webp in Resources */ = {isa = PBXBuildFile; fileRef = 004773252F5C281300E46A79 /* liveRoom_newComer_gift_animate.webp */; }; 004773262F5C281300E46A79 /* liveRoom_newComer_gift_animate.webp in Resources */ = {isa = PBXBuildFile; fileRef = 004773252F5C281300E46A79 /* liveRoom_newComer_gift_animate.webp */; };
004773382F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 004773362F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.h */; };
004773392F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 004773372F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.m */; };
004773412F5EBADE00E46A79 /* FUSNewUserSevenDayCheckInControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 004773402F5EBADE00E46A79 /* FUSNewUserSevenDayCheckInControl.swift */; };
0089F9552D1979A900714CE3 /* FUSRegalValueUpgradeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0089FD702D13F3460030DAA7 /* FUSRegalValueUpgradeView.xib */; }; 0089F9552D1979A900714CE3 /* FUSRegalValueUpgradeView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0089FD702D13F3460030DAA7 /* FUSRegalValueUpgradeView.xib */; };
0089FD732D13F3460030DAA7 /* FUSLiveParcelGiftAndPropsCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0089FD612D13F3460030DAA7 /* FUSLiveParcelGiftAndPropsCollectionViewCell.h */; }; 0089FD732D13F3460030DAA7 /* FUSLiveParcelGiftAndPropsCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 0089FD612D13F3460030DAA7 /* FUSLiveParcelGiftAndPropsCollectionViewCell.h */; };
0089FD742D13F3460030DAA7 /* FUSLiveParcelPropsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0089FD672D13F3460030DAA7 /* FUSLiveParcelPropsView.h */; }; 0089FD742D13F3460030DAA7 /* FUSLiveParcelPropsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0089FD672D13F3460030DAA7 /* FUSLiveParcelPropsView.h */; };
...@@ -2395,6 +2398,9 @@ ...@@ -2395,6 +2398,9 @@
004773212F5C0C2000E46A79 /* fus_home_navi_startLive_animate.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = fus_home_navi_startLive_animate.webp; sourceTree = "<group>"; }; 004773212F5C0C2000E46A79 /* fus_home_navi_startLive_animate.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = fus_home_navi_startLive_animate.webp; sourceTree = "<group>"; };
004773232F5C262300E46A79 /* home_list_pk_show_type1_anim.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = home_list_pk_show_type1_anim.webp; sourceTree = "<group>"; }; 004773232F5C262300E46A79 /* home_list_pk_show_type1_anim.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = home_list_pk_show_type1_anim.webp; sourceTree = "<group>"; };
004773252F5C281300E46A79 /* liveRoom_newComer_gift_animate.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = liveRoom_newComer_gift_animate.webp; sourceTree = "<group>"; }; 004773252F5C281300E46A79 /* liveRoom_newComer_gift_animate.webp */ = {isa = PBXFileReference; lastKnownFileType = file; path = liveRoom_newComer_gift_animate.webp; sourceTree = "<group>"; };
004773362F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSGetSuccessRecommendResultModel.h; sourceTree = "<group>"; };
004773372F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSGetSuccessRecommendResultModel.m; sourceTree = "<group>"; };
004773402F5EBADE00E46A79 /* FUSNewUserSevenDayCheckInControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSNewUserSevenDayCheckInControl.swift; sourceTree = "<group>"; };
0089FD4A2D13F3460030DAA7 /* FUSGiftNumSelectView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSGiftNumSelectView.h; sourceTree = "<group>"; }; 0089FD4A2D13F3460030DAA7 /* FUSGiftNumSelectView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FUSGiftNumSelectView.h; sourceTree = "<group>"; };
0089FD4B2D13F3460030DAA7 /* FUSGiftNumSelectView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSGiftNumSelectView.m; sourceTree = "<group>"; }; 0089FD4B2D13F3460030DAA7 /* FUSGiftNumSelectView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FUSGiftNumSelectView.m; sourceTree = "<group>"; };
0089FD4C2D13F3460030DAA7 /* FUSGiftSegmentControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSGiftSegmentControl.swift; sourceTree = "<group>"; }; 0089FD4C2D13F3460030DAA7 /* FUSGiftSegmentControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FUSGiftSegmentControl.swift; sourceTree = "<group>"; };
...@@ -4768,6 +4774,14 @@ ...@@ -4768,6 +4774,14 @@
path = PK_Cover_Animation; path = PK_Cover_Animation;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
0047733F2F5EBAAF00E46A79 /* ViewModel */ = {
isa = PBXGroup;
children = (
004773402F5EBADE00E46A79 /* FUSNewUserSevenDayCheckInControl.swift */,
);
path = ViewModel;
sourceTree = "<group>";
};
0089FD722D13F3460030DAA7 /* FFGiftView */ = { 0089FD722D13F3460030DAA7 /* FFGiftView */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -4866,6 +4880,7 @@ ...@@ -4866,6 +4880,7 @@
00AD7DF12CA1623100E02376 /* AlertView */ = { 00AD7DF12CA1623100E02376 /* AlertView */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
0047733F2F5EBAAF00E46A79 /* ViewModel */,
00A516B12CA2976F0022DE40 /* View */, 00A516B12CA2976F0022DE40 /* View */,
00AD7DF62CA1801000E02376 /* Model */, 00AD7DF62CA1801000E02376 /* Model */,
00AD7DF22CA1626B00E02376 /* FUSSevenDayCheckinAlertView.h */, 00AD7DF22CA1626B00E02376 /* FUSSevenDayCheckinAlertView.h */,
...@@ -6554,6 +6569,8 @@ ...@@ -6554,6 +6569,8 @@
BECF744F2D30C7BF00F5ABBC /* FUSBeforeLiveCondModel.m */, BECF744F2D30C7BF00F5ABBC /* FUSBeforeLiveCondModel.m */,
00E6CD8F2F52FA3900B63797 /* FUSLiveChatTableClickTypeRangeModel.h */, 00E6CD8F2F52FA3900B63797 /* FUSLiveChatTableClickTypeRangeModel.h */,
00E6CD902F52FA3900B63797 /* FUSLiveChatTableClickTypeRangeModel.m */, 00E6CD902F52FA3900B63797 /* FUSLiveChatTableClickTypeRangeModel.m */,
004773362F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.h */,
004773372F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.m */,
); );
path = Model; path = Model;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -8780,6 +8797,7 @@ ...@@ -8780,6 +8797,7 @@
BED658E72C5B745E00668116 /* FUSFilterItemCell.h in Headers */, BED658E72C5B745E00668116 /* FUSFilterItemCell.h in Headers */,
00A3AB702CB665EA007646E1 /* FUSLiveQuickChatSetCell.h in Headers */, 00A3AB702CB665EA007646E1 /* FUSLiveQuickChatSetCell.h in Headers */,
BED65A3B2C5B745F00668116 /* FUSTreasureBoxOptionModel.h in Headers */, BED65A3B2C5B745F00668116 /* FUSTreasureBoxOptionModel.h in Headers */,
004773382F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.h in Headers */,
BED65AC62C5B745F00668116 /* FUSBroadcastModel.h in Headers */, BED65AC62C5B745F00668116 /* FUSBroadcastModel.h in Headers */,
BED65B042C5B746000668116 /* FUSBaoFangTagView.h in Headers */, BED65B042C5B746000668116 /* FUSBaoFangTagView.h in Headers */,
BE189E132C733B460008418B /* FSREffectdictGiftShowRoomRoomGuarderView.h in Headers */, BE189E132C733B460008418B /* FSREffectdictGiftShowRoomRoomGuarderView.h in Headers */,
...@@ -10581,6 +10599,7 @@ ...@@ -10581,6 +10599,7 @@
BED659E42C5B745F00668116 /* FUSPKHttpHelper.m in Sources */, BED659E42C5B745F00668116 /* FUSPKHttpHelper.m in Sources */,
BED658BA2C5B745E00668116 /* FUSHalfWebViewCollectionViewCell.m in Sources */, BED658BA2C5B745E00668116 /* FUSHalfWebViewCollectionViewCell.m in Sources */,
BED65A7A2C5B745F00668116 /* FUSLiveFunctionView.m in Sources */, BED65A7A2C5B745F00668116 /* FUSLiveFunctionView.m in Sources */,
004773412F5EBADE00E46A79 /* FUSNewUserSevenDayCheckInControl.swift in Sources */,
BED658FF2C5B745E00668116 /* FUSLiveChatInputBulletsListCell.m in Sources */, BED658FF2C5B745E00668116 /* FUSLiveChatInputBulletsListCell.m in Sources */,
BED6599A2C5B745E00668116 /* FUSAgoraHelper.m in Sources */, BED6599A2C5B745E00668116 /* FUSAgoraHelper.m in Sources */,
BED658DF2C5B745E00668116 /* FUSAudiencePopView.m in Sources */, BED658DF2C5B745E00668116 /* FUSAudiencePopView.m in Sources */,
...@@ -10735,6 +10754,7 @@ ...@@ -10735,6 +10754,7 @@
00A516B62CA29A990022DE40 /* FUSNewUserRewardItemCell.swift in Sources */, 00A516B62CA29A990022DE40 /* FUSNewUserRewardItemCell.swift in Sources */,
BED659C62C5B745F00668116 /* FUSLiveScrollView.m in Sources */, BED659C62C5B745F00668116 /* FUSLiveScrollView.m in Sources */,
BECF743F2D2FBC4500F5ABBC /* FUSLiveBitrateModel.swift in Sources */, BECF743F2D2FBC4500F5ABBC /* FUSLiveBitrateModel.swift in Sources */,
004773392F5E7E7800E46A79 /* FUSGetSuccessRecommendResultModel.m in Sources */,
BED6590F2C5B745E00668116 /* FUSLiveShareView.m in Sources */, BED6590F2C5B745E00668116 /* FUSLiveShareView.m in Sources */,
BE189DC02C733B460008418B /* FSRActiveMotorEffectViewController.m in Sources */, BE189DC02C733B460008418B /* FSRActiveMotorEffectViewController.m in Sources */,
BEB504702D2E8C2E00EA6E6F /* FUSLiveThemeModel+FUSRequest.m in Sources */, BEB504702D2E8C2E00EA6E6F /* FUSLiveThemeModel+FUSRequest.m in Sources */,
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
// 导入通知框架 // 导入通知框架
#import <UserNotifications/UserNotifications.h> #import <UserNotifications/UserNotifications.h>
#import <FUSCommon/FUSCommon-Swift.h> #import <FUSCommon/FUSCommon-Swift.h>
#import <FUSShowRoomModule/FUSShowRoomModule-Swift.h>
@interface FUSHomePageViewController ()<UIScrollViewDelegate, FUSFloatTabbarViewDelegate, FUSHomeViewBaseDelegate> @interface FUSHomePageViewController ()<UIScrollViewDelegate, FUSFloatTabbarViewDelegate, FUSHomeViewBaseDelegate>
...@@ -38,10 +39,17 @@ ...@@ -38,10 +39,17 @@
@property (nonatomic, assign) BOOL isShowOpenScreenPush; @property (nonatomic, assign) BOOL isShowOpenScreenPush;
@property (nonatomic, assign) BOOL isShowNewUserAlert; @property (nonatomic, assign) BOOL isShowNewUserAlert;
/// 七天签到控制
@property (nonatomic, strong) FUSNewUserSevenDayCheckInControl *sevenDayCheckinControl;
/// 是否加载过AppStartPush,因为这个东西有socket相关,需要socket连接成功才行 /// 是否加载过AppStartPush,因为这个东西有socket相关,需要socket连接成功才行
@property (nonatomic, assign) BOOL isLoadAppStartPush; @property (nonatomic, assign) BOOL isLoadAppStartPush;
/// 完成了绑定推荐人的操作
@property (nonatomic, assign) BOOL showBindAgentComplete;
/// 当前这一次的登录已经显示过七天签到了
@property (nonatomic, assign) BOOL loginDidShowSeventCheckin;
@end @end
@implementation FUSHomePageViewController @implementation FUSHomePageViewController
...@@ -52,11 +60,14 @@ ...@@ -52,11 +60,14 @@
self.hiddenNavigationBar = YES; self.hiddenNavigationBar = YES;
self.homeTabbarShouldScrollToHide = NO; self.homeTabbarShouldScrollToHide = NO;
self.firstLoad = YES; self.firstLoad = YES;
self.showBindAgentComplete = NO;
self.loginDidShowSeventCheckin = NO;
self.isShowNewUserAlert = NO; self.isShowNewUserAlert = NO;
self.isLoadAppStartPush = NO; self.isLoadAppStartPush = NO;
[self fus_createTabbarView]; [self fus_createTabbarView];
[self fus_createHomeScrollView]; [self fus_createHomeScrollView];
[self fus_initSevenDayCheckinBtn];
[self.view bringSubviewToFront:self.tabbarView]; [self.view bringSubviewToFront:self.tabbarView];
MJWeakSelf MJWeakSelf
...@@ -124,12 +135,30 @@ ...@@ -124,12 +135,30 @@
[self.tabbarView fus_setSelect:1 autoCall:NO]; [self.tabbarView fus_setSelect:1 autoCall:NO];
} }
- (void)fus_initSevenDayCheckinBtn {
self.sevenDayCheckinControl = [[FUSNewUserSevenDayCheckInControl alloc] init];
MJWeakSelf
self.sevenDayCheckinControl.launchEnterRoomCompelte = ^{
[weakSelf fus_launchCompleteCheckAndShowSevenDayCheckinView];
};
}
-(void)viewWillAppear:(BOOL)animated{ -(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated]; [super viewWillAppear:animated];
if (!self.firstLoad) { if (!self.firstLoad) {
[self.contentViewList[self.tabbarView.currentIndex] fus_viewWillShow]; [self.contentViewList[self.tabbarView.currentIndex] fus_viewWillShow];
[self fus_showSevenDayCheckinAlertViewIfInNeedWithType:FUSSevenDayCheckinTypeBackToHomePage]; if ([[UIViewController fus_topViewController] isKindOfClass:[self class]]) {
if (self.sevenDayCheckinControl.launchEnterLiveRoomComplete == NO) {
// 进入房间的操作还没加载完
return;
}
[self fus_showSevenDayCheckinAlertViewIfInNeedWithType:FUSSevenDayCheckinTypeBackToHomePage];
}
} }
self.firstLoad = NO; self.firstLoad = NO;
...@@ -154,6 +183,31 @@ ...@@ -154,6 +183,31 @@
}]; }];
} }
} }
-(void)fus_launchCompleteCheckAndShowSevenDayCheckinView{
if (self.sevenDayCheckinControl.launchCompleteShouldShow == YES) {
// 完成检测网页分享直播间
[self fus_checkAndShowSevenDayCheckinView];
}
}
-(void)fus_checkAndShowSevenDayCheckinView{
if (self.showBindAgentComplete != YES) {
// 没有完成显示绑定经纪人
//以上情况都还不能显示
return;
}
if (self.loginDidShowSeventCheckin == YES) {
// 这次登录已经显示过了就不显示了
return;
}
self.loginDidShowSeventCheckin = YES;
[self fus_showSevenDayCheckinAlertViewIfInNeedWithType:FUSSevenDayCheckinTypeLogin];
}
/// 开屏页相关,ff有,但是fusi没有,后续需要注意一下 /// 开屏页相关,ff有,但是fusi没有,后续需要注意一下
-(void)fus_getAppStartPush{ -(void)fus_getAppStartPush{
//TODO: 这个ff有相关的东西,但是fusi没有,后续得跟进一下 //TODO: 这个ff有相关的东西,但是fusi没有,后续得跟进一下
...@@ -308,6 +362,7 @@ ...@@ -308,6 +362,7 @@
NSArray *array = notification.object; NSArray *array = notification.object;
FUSZhaixinRecommendedViewController *remVc = [[FUSZhaixinRecommendedViewController alloc] initWithDataArray:array]; FUSZhaixinRecommendedViewController *remVc = [[FUSZhaixinRecommendedViewController alloc] initWithDataArray:array];
remVc.modalPresentationStyle = UIModalPresentationOverFullScreen;
UINavigationController *remNav = [[UINavigationController alloc] initWithRootViewController:remVc]; UINavigationController *remNav = [[UINavigationController alloc] initWithRootViewController:remVc];
if (remVc) { if (remVc) {
BOOL isNew = [[[NSUserDefaults standardUserDefaults] objectForKey:FUSUserUDKeys.fus_NEW_USER_REGIST] boolValue]; BOOL isNew = [[[NSUserDefaults standardUserDefaults] objectForKey:FUSUserUDKeys.fus_NEW_USER_REGIST] boolValue];
...@@ -319,7 +374,9 @@ ...@@ -319,7 +374,9 @@
MJWeakSelf MJWeakSelf
remVc.deallocBlock = ^{ remVc.deallocBlock = ^{
[[FUSRouter userRouter] fus_showBindAgentSuccessPopViewWithSuccess:^{ [[FUSRouter userRouter] fus_showBindAgentSuccessPopViewWithSuccess:^{
[weakSelf fus_showSevenDayCheckinAlertViewIfInNeedWithType:FUSSevenDayCheckinTypeLogin]; // [weakSelf fus_showSevenDayCheckinAlertViewIfInNeedWithType:FUSSevenDayCheckinTypeLogin];
weakSelf.showBindAgentComplete = YES;
[FUSSwiftLiveHelper shared].oc_loginAlertViewIsComplete = YES;
}]; }];
}; };
} }
......
...@@ -229,6 +229,7 @@ ...@@ -229,6 +229,7 @@
NSUserDefaults *userDefault = [[NSUserDefaults alloc] initWithSuiteName:[FUSCacheDataShare shareStore].userDetailInfo.uid]; NSUserDefaults *userDefault = [[NSUserDefaults alloc] initWithSuiteName:[FUSCacheDataShare shareStore].userDetailInfo.uid];
NSInteger currentTime = (NSInteger)[[NSDate date] timeIntervalSince1970]; NSInteger currentTime = (NSInteger)[[NSDate date] timeIntervalSince1970];
[userDefault setInteger:currentTime + model.nextTime forKey:FUSSevenDayCheckinStore_nextCheckInTimeUDKey]; [userDefault setInteger:currentTime + model.nextTime forKey:FUSSevenDayCheckinStore_nextCheckInTimeUDKey];
[FUSSwiftCacheDataShare share].oc_todayDidClickedSevenDayCheckin = YES;
if (weakSelf.dismissHandler) { if (weakSelf.dismissHandler) {
weakSelf.dismissHandler(); weakSelf.dismissHandler();
} }
......
//
// FUSNewUserSevenDayCheckInControl.swift
// FUSShowRoomModule
//
// Created by aaa on 2026/3/9.
//
import UIKit
import RxSwift
import RxCocoa
@objcMembers public class FUSNewUserSevenDayCheckInControl: NSObject {
@objc public var showTypeDidChangeHandle: ((Bool) -> Void)?
/// 加载进入房间的逻辑完成的回调
@objc public var launchEnterRoomCompelte:(() -> Void)?
/// 是否需要显示
@objc public var oc_shouldShow: Bool {
return shouldShow.value
}
/// app加载完成的时候,是否需要显示
@objc public var launchCompleteShouldShow: Bool = false
/// 登录进入房间操作都操作完了
@objc public var launchEnterLiveRoomComplete: Bool = false
let shouldShow: BehaviorRelay<Bool> = .init(value: false)
let disposed = DisposeBag()
public override init() {
super.init()
ff_setup()
}
func ff_setup(){
let settingInitData = FUSSwiftCacheDataShare.share.settingInitDataModel
let todayDidClicked = FUSSwiftCacheDataShare.share.todayDidClickedSevenDayCheckin
Observable.combineLatest(settingInitData, todayDidClicked)
.subscribe(onNext: {[weak self] settingInitData, todayDidClicked in
var canShow = false
if (settingInitData?.haveNoviceCheckIn ?? 0) == 1 && todayDidClicked == false {
canShow = true
}
self?.shouldShow.accept(canShow)
})
.disposed(by: disposed)
self.shouldShow.distinctUntilChanged()
.subscribe(onNext: {[weak self] shouldShow in
self?.showTypeDidChangeHandle?(shouldShow)
})
.disposed(by: disposed)
let launchCompleteWebShareLiveRoom = FUSSwiftLiveHelper.shared.launchCompleteWebShareLiveRoom
let launchCompleteRecommendLiveRoom = FUSSwiftLiveHelper.shared.launchCompleteRecommendLiveRoom
Observable.combineLatest(launchCompleteWebShareLiveRoom, launchCompleteRecommendLiveRoom)
.subscribe(onNext: {[weak self] launchCompleteWebShareLiveRoom, launchCompleteRecommendLiveRoom in
guard let self = self else { return }
if launchCompleteWebShareLiveRoom != 0 &&
launchCompleteRecommendLiveRoom != 0 {
// 都有结果了才有讨论的空间
if launchCompleteWebShareLiveRoom == 2 &&
launchCompleteRecommendLiveRoom == 2 {
// 都没有进入直播间才能直接显示
self.launchCompleteShouldShow = true
}
if todayDidClicked.value == true {
// 如果今天点击过了,那也不应该再显示了
self.launchCompleteShouldShow = false
}
self.launchEnterLiveRoomComplete = true
self.launchEnterRoomCompelte?()
}
})
.disposed(by: disposed)
}
}
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
[FUSLiveHelper shareInstance].rooms = self.viewModel.onlyLiveRoomList; [FUSLiveHelper shareInstance].rooms = self.viewModel.onlyLiveRoomList;
} }
[FUSLiveHelper fus_playLiveWithRoomInfoModel:model behaviorSrc:@"" success:nil failure:nil]; [FUSLiveHelper fus_playLiveWithRoomInfoModel:model behaviorSrc:@"" otherInfo:nil success:nil failure:nil];
[FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:1 reqEventType:-1 extraInfo:@"" extraJson:@"" roomId:anchor.roomId]; [FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:1 reqEventType:-1 extraInfo:@"" extraJson:@"" roomId:anchor.roomId];
} }
} }
......
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
if (roomModel.roomId.intValue == 0) { if (roomModel.roomId.intValue == 0) {
return; return;
} }
[FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:@"" success:nil failure:nil]; [FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:@"" otherInfo:nil success:nil failure:nil];
} else if (self.model.clickType == 2) { } else if (self.model.clickType == 2) {
// 跳转到空间 // 跳转到空间
......
...@@ -181,7 +181,7 @@ typedef NS_ENUM(NSUInteger,JumpType) { ...@@ -181,7 +181,7 @@ typedef NS_ENUM(NSUInteger,JumpType) {
if (roomModel.roomId.integerValue == [FUSCacheDataShare shareStore].userDetailInfo.uid.integerValue) { if (roomModel.roomId.integerValue == [FUSCacheDataShare shareStore].userDetailInfo.uid.integerValue) {
[FUSLiveHelper fus_pushLive]; [FUSLiveHelper fus_pushLive];
} else { } else {
[FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:@"" success:nil failure:nil]; [FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:@"" otherInfo:nil success:nil failure:nil];
} }
// Firebase 统计 // Firebase 统计
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#import "FUSHomeViewViewModel.h" #import "FUSHomeViewViewModel.h"
#import "FUSBaoFangCacheOperate.h" #import "FUSBaoFangCacheOperate.h"
#import <FUSShowRoomModule/FUSShowRoomModule-Swift.h>
...@@ -129,6 +130,10 @@ ...@@ -129,6 +130,10 @@
} }
[self fus_sortDataListAutoCall:autoCall]; [self fus_sortDataListAutoCall:autoCall];
if ([FUSSwiftLiveHelper shared].oc_liveRoomsDataDidLoaded == NO) {
[FUSSwiftLiveHelper shared].oc_liveRoomsDataDidLoaded = YES;
}
} failure:^(NSString *msg, int code) { } failure:^(NSString *msg, int code) {
[FUSDialogView fus_showDialog:msg]; [FUSDialogView fus_showDialog:msg];
self.loadingCount--; self.loadingCount--;
......
...@@ -739,7 +739,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) { ...@@ -739,7 +739,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
//服务器启动推流 //服务器启动推流
[FUSLiveHttpHelper fus_startPushStreamWithRoomId:[[[FUSLiveHelper shareInstance] roomInfoModel] roomId] vdoid:[[[FUSLiveHelper shareInstance] streamModel] vdoid] livingWay:@"0" liveScope:[FUSLiveHelper shareInstance].roomScopeType success:^(NSDictionary *dict){ [FUSLiveHttpHelper fus_startPushStreamWithRoomId:[[[FUSLiveHelper shareInstance] roomInfoModel] roomId] vdoid:[[[FUSLiveHelper shareInstance] streamModel] vdoid] livingWay:@"0" liveScope:[FUSLiveHelper shareInstance].roomScopeType success:^(NSDictionary *dict){
[FUSLiveHttpHelper fus_enterRoomWithRoomId:[FUSLiveHelper shareInstance].roomInfoModel.roomId vdoid:[FUSLiveHelper shareInstance].streamModel.vdoid behaviorSrc:@"" password:@"" success:^(FUSRoomInfoModel *roomInfoModel,BOOL micMode, NSString *streamUrl, NSString *pkInfo) { [FUSLiveHttpHelper fus_enterRoomWithRoomId:[FUSLiveHelper shareInstance].roomInfoModel.roomId vdoid:[FUSLiveHelper shareInstance].streamModel.vdoid behaviorSrc:@"" password:@"" otherInfo:nil success:^(FUSRoomInfoModel *roomInfoModel,BOOL micMode, NSString *streamUrl, NSString *pkInfo) {
if (![roomInfoModel.roomId isEqualToString:[FUSLiveHelper shareInstance].roomInfoModel.roomId]) { if (![roomInfoModel.roomId isEqualToString:[FUSLiveHelper shareInstance].roomInfoModel.roomId]) {
FUSLogInfo(@"不是当前包房"); FUSLogInfo(@"不是当前包房");
...@@ -1002,7 +1002,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) { ...@@ -1002,7 +1002,7 @@ typedef NS_ENUM(NSInteger, FUSStreamState) {
[weakSelf.liveFunctionView.chatTableView fus_addEnterRoomSystemTipMessage]; [weakSelf.liveFunctionView.chatTableView fus_addEnterRoomSystemTipMessage];
[weakSelf.liveFunctionView.pusherChatTableView fus_addEnterRoomSystemTipMessage]; [weakSelf.liveFunctionView.pusherChatTableView fus_addEnterRoomSystemTipMessage];
[FUSLiveHttpHelper fus_enterRoomWithRoomId:[FUSLiveHelper shareInstance].roomInfoModel.roomId vdoid:[FUSLiveHelper shareInstance].streamModel.vdoid behaviorSrc:@"" password:@"" success:^(FUSRoomInfoModel *roomInfoModel,BOOL micMode, NSString *streamUrl, NSString *pkInfo) { [FUSLiveHttpHelper fus_enterRoomWithRoomId:[FUSLiveHelper shareInstance].roomInfoModel.roomId vdoid:[FUSLiveHelper shareInstance].streamModel.vdoid behaviorSrc:@"" password:@"" otherInfo:nil success:^(FUSRoomInfoModel *roomInfoModel,BOOL micMode, NSString *streamUrl, NSString *pkInfo) {
if (![roomInfoModel.roomId isEqualToString:[FUSLiveHelper shareInstance].roomInfoModel.roomId]) { if (![roomInfoModel.roomId isEqualToString:[FUSLiveHelper shareInstance].roomInfoModel.roomId]) {
FUSLogInfo(@"不是当前包房"); FUSLogInfo(@"不是当前包房");
......
//
// FUSGetSuccessRecommendResultModel.h
// FUSShowRoomModule
//
// Created by aaa on 2026/3/9.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@class FUSGetSuccessRecommendResultRecommendRoomModel;
@interface FUSGetSuccessRecommendResultModel : FUSBaseModel
/// 直播间ID
@property (nonatomic, copy) NSString *roomId;
/// 直播间拉流地址
@property (nonatomic, copy) NSString *pullFlowUrl;
/// 进入room
@property (nonatomic, strong) FUSGetSuccessRecommendResultRecommendRoomModel * __nullable recommendRoom;
@end
@interface FUSGetSuccessRecommendResultRecommendRoomModel : FUSBaseModel
/// 主播ID
@property (nonatomic, copy) NSString *roomId;
/// 主播类型
@property (nonatomic, copy) NSString *recommendType;
/// 主播直播流地址
@property (nonatomic, copy) NSString *pullFlowUrl;
@end
NS_ASSUME_NONNULL_END
//
// FUSGetSuccessRecommendResultModel.m
// FUSShowRoomModule
//
// Created by aaa on 2026/3/9.
//
#import "FUSGetSuccessRecommendResultModel.h"
@implementation FUSGetSuccessRecommendResultModel
+ (NSDictionary<NSString *,id> *)modelContainerPropertyGenericClass {
return @{@"recommendRoom": [FUSGetSuccessRecommendResultRecommendRoomModel class]};
}
@end
@implementation FUSGetSuccessRecommendResultRecommendRoomModel
@end
...@@ -260,6 +260,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) { ...@@ -260,6 +260,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) {
*/ */
+ (void)fus_playLiveWithRoomInfoModel:(FUSRoomInfoModel *_Nullable)roomInfoModel + (void)fus_playLiveWithRoomInfoModel:(FUSRoomInfoModel *_Nullable)roomInfoModel
behaviorSrc:(NSString * _Nullable )behaviorSrc behaviorSrc:(NSString * _Nullable )behaviorSrc
otherInfo:(NSDictionary * _Nullable)otherInfo
success:(void(^_Nullable)(void))success success:(void(^_Nullable)(void))success
failure:(void(^_Nullable)(void))failure; failure:(void(^_Nullable)(void))failure;
...@@ -286,6 +287,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) { ...@@ -286,6 +287,7 @@ typedef NS_ENUM(NSInteger,FUSLiveRoomScopeType) {
*/ */
- (void)fus_switchRoomWithRoomInfoModel:(nonnull FUSRoomInfoModel *)roomInfoModel - (void)fus_switchRoomWithRoomInfoModel:(nonnull FUSRoomInfoModel *)roomInfoModel
behaviorSrc:(NSString * _Nullable )behaviorSrc behaviorSrc:(NSString * _Nullable )behaviorSrc
otherInfo:(NSDictionary * _Nullable)otherInfo
success:(void(^_Nullable)(void))success success:(void(^_Nullable)(void))success
failure:(void(^_Nullable)(void))failure; failure:(void(^_Nullable)(void))failure;
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#import "FUSFansMemberModel.h" #import "FUSFansMemberModel.h"
#import "FUSAssessQualityInfoModel.h" #import "FUSAssessQualityInfoModel.h"
#import "FUSUserLiveAssessHistoryModel.h" #import "FUSUserLiveAssessHistoryModel.h"
#import "FUSGetSuccessRecommendResultModel.h"
#import "FUSLiveGameModel.h" #import "FUSLiveGameModel.h"
#import "FUSLivePopularRankModel.h" #import "FUSLivePopularRankModel.h"
...@@ -103,6 +104,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -103,6 +104,7 @@ NS_ASSUME_NONNULL_BEGIN
vdoid:(NSString *)vdoid vdoid:(NSString *)vdoid
behaviorSrc:(NSString *)behaviorSrc behaviorSrc:(NSString *)behaviorSrc
password:(NSString *)password password:(NSString *)password
otherInfo:(NSDictionary * __nullable)otherInfo
success:(void(^)(FUSRoomInfoModel *roomInfoModel, BOOL micMode,NSString *streamUrl, NSString *pkInfo))success success:(void(^)(FUSRoomInfoModel *roomInfoModel, BOOL micMode,NSString *streamUrl, NSString *pkInfo))success
failure:(void(^)(NSDictionary *errorDict, NSString *msg, int code))failure; failure:(void(^)(NSDictionary *errorDict, NSString *msg, int code))failure;
...@@ -381,9 +383,9 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -381,9 +383,9 @@ NS_ASSUME_NONNULL_BEGIN
@param success 成功回调 @param success 成功回调
@param failure 失败回调 @param failure 失败回调
*/ */
+ (void)fus_requestRecommendedListWithRoomId:(NSString *)roomId //+ (void)fus_requestRecommendedListWithRoomId:(NSString *)roomId
success:(void(^)(NSArray *recommendArray))success // success:(void(^)(NSArray *recommendArray))success
failure:(void(^)(NSString *msg, int code, NSDictionary *errorDict))failure; // failure:(void(^)(NSString *msg, int code, NSDictionary *errorDict))failure;
#pragma mark - Other #pragma mark - Other
...@@ -1041,6 +1043,14 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -1041,6 +1043,14 @@ NS_ASSUME_NONNULL_BEGIN
succeed:(void (^)(void))succeed succeed:(void (^)(void))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure; failure:(void (^)(NSString *msg, NSInteger code))failure;
/// 获取首页自动跳转直播间
/// @param roomId 客户端携带有的分享主播ID(非必填)
/// @param succeed 1
/// @param failure 0
+(void)fus_requestIndexGetSuccessRecommendResultWithRoomId:(NSString * __nullable)roomId
succeed:(void (^)(FUSGetSuccessRecommendResultModel *model))succeed
failure:(void (^)(NSString *msg, NSInteger code))failure;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
...@@ -417,11 +417,12 @@ ...@@ -417,11 +417,12 @@
@param failure 失败回调 @param failure 失败回调
*/ */
+ (void)fus_enterRoomWithRoomId:(NSString *)roomId + (void)fus_enterRoomWithRoomId:(NSString *)roomId
vdoid:(NSString *)vdoid vdoid:(NSString *)vdoid
behaviorSrc:(NSString *)behaviorSrc behaviorSrc:(NSString *)behaviorSrc
password:(NSString *)password password:(NSString *)password
success:(void(^)(FUSRoomInfoModel *roomInfoModel, BOOL micMode, NSString *streamUrl, NSString *pkInfo))success otherInfo:(NSDictionary *)otherInfo
failure:(void(^)(NSDictionary *errorDict, NSString *msg, int code))failure success:(void (^)(FUSRoomInfoModel * _Nonnull, BOOL, NSString * _Nonnull, NSString * _Nonnull))success
failure:(void (^)(NSDictionary * _Nonnull, NSString * _Nonnull, int))failure
{ {
// 空值校验 // 空值校验
if ([NSString isNullWithString:roomId]) { if ([NSString isNullWithString:roomId]) {
...@@ -444,6 +445,14 @@ ...@@ -444,6 +445,14 @@
params[@"behaviorSrc"] = behaviorSrc; params[@"behaviorSrc"] = behaviorSrc;
} }
if (otherInfo != nil && otherInfo.allKeys.count > 0) {
NSString *recommendType = [otherInfo[@"recommendType"] description];
if (recommendType != nil && recommendType.length > 0) {
params[@"recommendType"] = recommendType;
}
}
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_LIVE_ENTER_ROOM params:params success:^(NSDictionary *dataDict, int code) { [FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_LIVE_ENTER_ROOM params:params success:^(NSDictionary *dataDict, int code) {
FUSLogVerbose(@""); FUSLogVerbose(@"");
...@@ -2923,4 +2932,20 @@ ...@@ -2923,4 +2932,20 @@
}]; }];
} }
+ (void)fus_requestIndexGetSuccessRecommendResultWithRoomId:(NSString *)roomId succeed:(void (^)(FUSGetSuccessRecommendResultModel * _Nonnull))succeed failure:(void (^)(NSString * _Nonnull, NSInteger))failure {
NSDictionary *parm = @{};
if (roomId != nil && roomId.length > 0) {
parm = @{@"roomId": roomId};
}
[FUSHttpHelper postRequestBinaryWithUrl:FUSShowRoomURLs.fus_URL_indexGetSuccessRecommendResult params:parm success:^(NSDictionary * _Nullable dataDict, int code) {
if (succeed) {
succeed([FUSGetSuccessRecommendResultModel fus_modelWithDict:dataDict]);
}
} failure:^(NSDictionary * _Nullable dataDict, int code) {
if (failure) failure(dataDict[@"msg"],code);
}];
}
@end @end
...@@ -59,7 +59,7 @@ import RxSwift ...@@ -59,7 +59,7 @@ import RxSwift
// 当每一次房间列表从未加载变成加载完成的状态 // 当每一次房间列表从未加载变成加载完成的状态
if self.isManualLoginBehavior.value == true { if self.isManualLoginBehavior.value == true {
// 是手动登录的 // 是手动登录的
// Mediator.HomeList?.ff_getSuccessRecommendResult() self.fus_getSuccessRecommendResult()
} }
else { else {
// 不是手动登录的,所以不会触发推荐房间,那么检查一下是否有分享房间的缓存 // 不是手动登录的,所以不会触发推荐房间,那么检查一下是否有分享房间的缓存
...@@ -247,8 +247,16 @@ import RxSwift ...@@ -247,8 +247,16 @@ import RxSwift
// 这里控制着几个非常复杂的逻辑,要求的过程是在登录期间:1.首页信息加载完成+弹窗弹完了--->2.检查是否能进入推荐房间,并且进入。--->3.如果没有推荐进入房间,则立刻弹出7天签到,如果进入了推荐房间,则退出推荐房间再进行7天签到 // 这里控制着几个非常复杂的逻辑,要求的过程是在登录期间:1.首页信息加载完成+弹窗弹完了--->2.检查是否能进入推荐房间,并且进入。--->3.如果没有推荐进入房间,则立刻弹出7天签到,如果进入了推荐房间,则退出推荐房间再进行7天签到
/// 直播间房间已经加载过 /// 直播间房间已经加载过
public let liveRoomsDataDidLoaded: BehaviorRelay<Bool> = .init(value: false) public let liveRoomsDataDidLoaded: BehaviorRelay<Bool> = .init(value: false)
@objc public var oc_liveRoomsDataDidLoaded: Bool {
get { self.liveRoomsDataDidLoaded.value }
set { self.liveRoomsDataDidLoaded.accept(newValue) }
}
/// 登录期间,弹窗已经弹完了 /// 登录期间,弹窗已经弹完了
public let loginAlertViewIsComplete: BehaviorRelay<Bool> = .init(value: false) public let loginAlertViewIsComplete: BehaviorRelay<Bool> = .init(value: false)
@objc public var oc_loginAlertViewIsComplete: Bool {
get { self.loginAlertViewIsComplete.value }
set { self.loginAlertViewIsComplete.accept(newValue) }
}
/// 第一次启动的时候,完成了推荐分享房间的操作,0=初始化,1= 有推荐分享并进入,2=没有推荐分享并且完成了 /// 第一次启动的时候,完成了推荐分享房间的操作,0=初始化,1= 有推荐分享并进入,2=没有推荐分享并且完成了
public let launchCompleteRecommendLiveRoom: BehaviorRelay<Int> = .init(value: 0) public let launchCompleteRecommendLiveRoom: BehaviorRelay<Int> = .init(value: 0)
@objc public var oc_launchCompleteRecommendLiveRoom: Int { @objc public var oc_launchCompleteRecommendLiveRoom: Int {
...@@ -266,6 +274,11 @@ import RxSwift ...@@ -266,6 +274,11 @@ import RxSwift
/// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false /// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false
public let isManualLoginBehavior: BehaviorRelay<Bool> = .init(value: false) public let isManualLoginBehavior: BehaviorRelay<Bool> = .init(value: false)
/// 是否通过账号/第三方登陆进来,是为true,如果是自动登录,也就是重新打开app进来的为false
@objc public var oc_isManualLoginBehavior: Bool {
get { self.isManualLoginBehavior.value }
set { self.isManualLoginBehavior.accept(newValue) }
}
/// 当前的推流 View /// 当前的推流 View
...@@ -507,8 +520,7 @@ import RxSwift ...@@ -507,8 +520,7 @@ import RxSwift
otherInfo: [AnyHashable: Any]?, otherInfo: [AnyHashable: Any]?,
success:(() -> Void)?, success:(() -> Void)?,
failure:(() -> Void)?) { failure:(() -> Void)?) {
// TODO: 这个otherInfo后期需要补上 FUSLiveHelper.fus_playLive(with: roomInfoModel, behaviorSrc: behaviorSrc, otherInfo: otherInfo, success: success, failure: failure)
FUSLiveHelper.fus_playLive(with: roomInfoModel, behaviorSrc: behaviorSrc, success: success, failure: failure)
} }
...@@ -554,10 +566,10 @@ import RxSwift ...@@ -554,10 +566,10 @@ import RxSwift
@objc public func switchRoom(roomInfoModel:FUSRoomInfoModel, @objc public func switchRoom(roomInfoModel:FUSRoomInfoModel,
hasPreloadVideo:Bool, hasPreloadVideo:Bool,
behaviorSrc: String, behaviorSrc: String,
otherInfo: [AnyHashable: Any]?,
success:(() -> Void)?, success:(() -> Void)?,
failure:(() -> Void)?) { failure:(() -> Void)?) {
// TODO: 这里是否是少了两个参数?还是不要?皮蛋最后一版本就没有 FUSLiveHelper.shareInstance().fus_switchRoom(with: roomInfoModel, behaviorSrc: behaviorSrc, otherInfo: otherInfo, success: success, failure: failure)
FUSLiveHelper.shareInstance().fus_switchRoom(with: roomInfoModel, behaviorSrc: behaviorSrc, success: success, failure: failure)
} }
...@@ -570,7 +582,7 @@ import RxSwift ...@@ -570,7 +582,7 @@ import RxSwift
hasPreloadVideo:Bool, hasPreloadVideo:Bool,
success:(() -> Void)?, success:(() -> Void)?,
failure:(() -> Void)?) { failure:(() -> Void)?) {
self.switchRoom(roomInfoModel: roomInfoModel, hasPreloadVideo: hasPreloadVideo, behaviorSrc: "", success: success, failure: failure) self.switchRoom(roomInfoModel: roomInfoModel, hasPreloadVideo: hasPreloadVideo, behaviorSrc: "", otherInfo: nil, success: success, failure: failure)
} }
...@@ -704,6 +716,48 @@ import RxSwift ...@@ -704,6 +716,48 @@ import RxSwift
self.processThermalState.accept(currentThermalState) self.processThermalState.accept(currentThermalState)
} }
// MARK: METOD
/// 获取首页自动跳转直播间
public func fus_getSuccessRecommendResult() {
let checkVersionStatus = FUSConfig.sharedInstanced().devConfigs.appStatus
if checkVersionStatus == true {
// sh状态没有
return
}
FUSLiveHttpHelper.fus_requestIndexGetSuccessRecommendResult(withRoomId: FUSSwiftCacheDataShare.share.recommendRoomId) {[weak self] model in
guard let self = self else { return }
if let roomId = model.recommendRoom?.roomId,
roomId.count > 0 {
// 如果有推荐,则直接走推荐
// if let preloadRoomList = Mediator.Live?.preloadRoomList{
// Mediator.Live?.roomList = preloadRoomList
// }
FUSRouter.live().fus_enterLiveRoom(roomId, behaviorSrc: "5", otherInfo: ["recommendType": model.recommendRoom?.recommendType.description ?? ""])
FUSDataStatisticsManager.fus_behaviorJoinRoomLog(withReqType: 4, reqEventType: -1, extraInfo: "", extraJson: "", roomId: roomId)
// 直播间:推荐进入,然后网页就确定不能进入了
self.launchCompleteRecommendLiveRoom.accept(1)
self.launchCompleteWebShareLiveRoom.accept(2)
}
else {
// 如果没有推荐,则走直接进入流程
let _ = FUSHandleEventHelper.fus_checkAndEnterWebShareLiveRoom(isEnter: true)
}
// 完成了所有推荐的任务,清空数据,以防干扰
FUSSwiftCacheDataShare.share.recommendRoomId = nil
FUSSwiftCacheDataShare.share.recommendExtraJson = nil
FUSSwiftCacheDataShare.share.recommendReqEventType = 0
} failure: { msg, code in
}
}
deinit { deinit {
/// 虽然这个是个单利,这没什么用,但是还是写一写 /// 虽然这个是个单利,这没什么用,但是还是写一写
NotificationCenter.default.removeObserver(self, name: ProcessInfo.thermalStateDidChangeNotification, object: nil) NotificationCenter.default.removeObserver(self, name: ProcessInfo.thermalStateDidChangeNotification, object: nil)
......
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
FUSRoomInfoModel *roomInfoModel = [FUSRoomInfoModel modelWithDictionary:[anchorModel fus_getDictionary]]; FUSRoomInfoModel *roomInfoModel = [FUSRoomInfoModel modelWithDictionary:[anchorModel fus_getDictionary]];
[[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomInfoModel behaviorSrc:@"" success:nil failure:nil]; [[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomInfoModel behaviorSrc:@"" otherInfo:nil success:nil failure:nil];
} }
#pragma mark - UICollectionViewDelegateFlowLayout #pragma mark - UICollectionViewDelegateFlowLayout
......
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init]; FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init];
roomModel.roomId = self.currentModel.toUid; roomModel.roomId = self.currentModel.toUid;
roomModel.face = self.currentModel.toFace; roomModel.face = self.currentModel.toFace;
[[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomModel behaviorSrc:@"" success:nil failure:nil]; [[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomModel behaviorSrc:@"6" otherInfo:nil success:nil failure:nil];
[FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:currentModel.toUid key:currentModel.keyId keySort:currentModel.keySort source:1 success:nil failure:nil]; [FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:currentModel.toUid key:currentModel.keyId keySort:currentModel.keySort source:1 success:nil failure:nil];
[FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[currentModel.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId]; [FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[currentModel.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId];
} }
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init]; FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init];
roomModel.roomId = self.currentModel.toUid; roomModel.roomId = self.currentModel.toUid;
roomModel.face = self.currentModel.toFace; roomModel.face = self.currentModel.toFace;
[[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomModel behaviorSrc:@"" success:nil failure:nil]; [[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomModel behaviorSrc:@"" otherInfo:nil success:nil failure:nil];
[FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:currentModel.toUid key:currentModel.keyId keySort:currentModel.keySort source:1 success:nil failure:nil]; [FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:currentModel.toUid key:currentModel.keyId keySort:currentModel.keySort source:1 success:nil failure:nil];
[FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[currentModel.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId]; [FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[currentModel.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId];
} }
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init]; FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init];
roomModel.roomId = self.currentModel.toUid; roomModel.roomId = self.currentModel.toUid;
roomModel.face = self.currentModel.toFace; roomModel.face = self.currentModel.toFace;
[[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomModel behaviorSrc:@"" success:nil failure:nil]; [[FUSLiveHelper shareInstance] fus_switchRoomWithRoomInfoModel:roomModel behaviorSrc:@"" otherInfo: nil success:nil failure:nil];
[FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:currentModel.toUid key:currentModel.keyId keySort:currentModel.keySort source:1 success:nil failure:nil]; [FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:currentModel.toUid key:currentModel.keyId keySort:currentModel.keySort source:1 success:nil failure:nil];
[FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[currentModel.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId]; [FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[currentModel.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId];
} }
......
...@@ -1126,7 +1126,7 @@ BDAlphaPlayerMetalViewDelegate ...@@ -1126,7 +1126,7 @@ BDAlphaPlayerMetalViewDelegate
roomModel.face = model.toFace; roomModel.face = model.toFace;
// [FFSwiftLiveHelper.shared switchRoomWithRoomInfoModel:roomModel success:nil failure:nil]; // [FFSwiftLiveHelper.shared switchRoomWithRoomInfoModel:roomModel success:nil failure:nil];
NSString *behaviorSrc = model.barrageType.integerValue == FUSbarrageTypeGlobal ? @"6" : @"7"; NSString *behaviorSrc = model.barrageType.integerValue == FUSbarrageTypeGlobal ? @"6" : @"7";
[[FUSSwiftLiveHelper shared] switchRoomWithRoomInfoModel:roomModel hasPreloadVideo:NO behaviorSrc:behaviorSrc success:nil failure:nil]; [[FUSSwiftLiveHelper shared] switchRoomWithRoomInfoModel:roomModel hasPreloadVideo:NO behaviorSrc:behaviorSrc otherInfo:nil success:nil failure:nil];
[FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:model.toUid key:model.keyId keySort:model.keySort source:2 success:nil failure:nil]; [FUSLiveHttpHelper fus_requestJumpToRoomStatFlowDataWithToRoomId:model.toUid key:model.keyId keySort:model.keySort source:2 success:nil failure:nil];
// 等于1的时候是系统弹幕也就是发宝箱 // 等于1的时候是系统弹幕也就是发宝箱
[FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[model.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId]; [FUSDataStatisticsManager fus_behaviorJoinRoomLogWithReqType:7 reqEventType:[model.msgType.description isEqualToString:@"1"] ? 2 : 1 extraInfo:@"" extraJson:@"" roomId:roomModel.roomId];
......
...@@ -542,6 +542,9 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -542,6 +542,9 @@ NS_ASSUME_NONNULL_BEGIN
/// PK主播领取奖励 /// PK主播领取奖励
+ (NSString *)fus_URL_vsHostdataRewardBatchGet; + (NSString *)fus_URL_vsHostdataRewardBatchGet;
/// 获取首页自动跳转直播间
+ (NSString *)fus_URL_indexGetSuccessRecommendResult;
@end @end
......
...@@ -876,6 +876,10 @@ ...@@ -876,6 +876,10 @@
+ (NSString *)fus_URL_vsHostdataRewardBatchGet { + (NSString *)fus_URL_vsHostdataRewardBatchGet {
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/vs/hostdata/reward/batch/get"]; return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/vs/hostdata/reward/batch/get"];
} }
/// 获取首页自动跳转直播间
+ (NSString *)fus_URL_indexGetSuccessRecommendResult {
return [FUSConfig.sharedInstanced.pathConfigs apiUrl:@"/index/getSuccessRecommendResult.html"];
}
@end @end
......
...@@ -145,7 +145,11 @@ ...@@ -145,7 +145,11 @@
} }
- (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)roomModel behaviorSrc:(nonnull NSString *)behaviorSrc { - (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)roomModel behaviorSrc:(nonnull NSString *)behaviorSrc {
[FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:behaviorSrc success:nil failure:nil]; [self fus_enterLiveRoomWithModel:roomModel behaviorSrc:behaviorSrc otherInfo:nil];
}
- (void)fus_enterLiveRoomWithModel:(FUSRoomInfoModel *)model behaviorSrc:(NSString *)behaviorSrc otherInfo:(NSDictionary *)otherInfo {
[FUSLiveHelper fus_playLiveWithRoomInfoModel:model behaviorSrc:behaviorSrc otherInfo:otherInfo success:nil failure:nil];
} }
/// 发送弹幕 /// 发送弹幕
...@@ -194,9 +198,12 @@ ...@@ -194,9 +198,12 @@
[self fus_enterLiveRoom:roomId behaviorSrc:@""]; [self fus_enterLiveRoom:roomId behaviorSrc:@""];
} }
- (void)fus_enterLiveRoom:(NSString *)roomId behaviorSrc:(nonnull NSString *)behaviorSrc{ - (void)fus_enterLiveRoom:(NSString *)roomId behaviorSrc:(nonnull NSString *)behaviorSrc{
[self fus_enterLiveRoom:roomId behaviorSrc:behaviorSrc otherInfo:nil];
}
- (void)fus_enterLiveRoom:(NSString *)roomId behaviorSrc:(NSString *)behaviorSrc otherInfo:(NSDictionary *)otherInfo {
FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init]; FUSRoomInfoModel *roomModel = [[FUSRoomInfoModel alloc]init];
roomModel.roomId = roomId; roomModel.roomId = roomId;
[FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:behaviorSrc success:nil failure:nil]; [FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:behaviorSrc otherInfo:otherInfo success:nil failure:nil];
} }
/** /**
...@@ -289,7 +296,7 @@ ...@@ -289,7 +296,7 @@
[FUSTalkingData fus_trackEvent:FUSLiveEventTrackParams.fus_EVENT_ROOM_ENTER_SOURCE label:@"" parameters:@{@"source":@"push", [FUSTalkingData fus_trackEvent:FUSLiveEventTrackParams.fus_EVENT_ROOM_ENTER_SOURCE label:@"" parameters:@{@"source":@"push",
@"room_id":model.roomId @"room_id":model.roomId
}]; }];
[FUSLiveHelper fus_playLiveWithRoomInfoModel:model behaviorSrc:@"" success:nil failure:nil]; [FUSLiveHelper fus_playLiveWithRoomInfoModel:model behaviorSrc:@"" otherInfo: nil success:nil failure:nil];
[FUSLiveHelper shareInstance].pushUID = nil; [FUSLiveHelper shareInstance].pushUID = nil;
// Firebase 统计 // Firebase 统计
[FIRAnalytics logEventWithName:@"enterroom" parameters:@{@"source":@"other", [FIRAnalytics logEventWithName:@"enterroom" parameters:@{@"source":@"other",
...@@ -397,7 +404,7 @@ ...@@ -397,7 +404,7 @@
FUSRoomInfoModel *roomModel = [FUSRoomInfoModel new]; FUSRoomInfoModel *roomModel = [FUSRoomInfoModel new];
roomModel.roomType = @"2"; roomModel.roomType = @"2";
roomModel.roomId = [FUSCacheDataShare shareStore].userDetailInfo.uid; roomModel.roomId = [FUSCacheDataShare shareStore].userDetailInfo.uid;
[FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:@"" success:^{ [FUSLiveHelper fus_playLiveWithRoomInfoModel:roomModel behaviorSrc:@"" otherInfo:nil success:^{
FUSLogDebug(@""); FUSLogDebug(@"");
} failure:^{ } failure:^{
FUSLogDebug(@""); FUSLogDebug(@"");
...@@ -650,6 +657,10 @@ ...@@ -650,6 +657,10 @@
[FUSSwiftLiveHelper shared].oc_launchCompleteWebShareLiveRoom = tag; [FUSSwiftLiveHelper shared].oc_launchCompleteWebShareLiveRoom = tag;
} }
- (void)fus_setIsManualLoginBehavior:(BOOL)action {
[FUSSwiftLiveHelper shared].oc_isManualLoginBehavior = action;
}
#pragma mark - HTTP #pragma mark - HTTP
/** /**
* 追踪包房 * 追踪包房
......
...@@ -69,6 +69,8 @@ ...@@ -69,6 +69,8 @@
// 登录账号、密码存储到本地 // 登录账号、密码存储到本地
[[FUSAccountStore shareStore] fus_addAccountWithAccount:acount yaboID:uid password:pwd countryCode:countryCode countryName:countryName]; [[FUSAccountStore shareStore] fus_addAccountWithAccount:acount yaboID:uid password:pwd countryCode:countryCode countryName:countryName];
[[FUSRouter liveRouter] fus_setIsManualLoginBehavior:YES];
if(success) success(dataDict, code); if(success) success(dataDict, code);
} failure:^(NSDictionary *dataDict, int code) { } failure:^(NSDictionary *dataDict, int code) {
...@@ -335,6 +337,7 @@ ...@@ -335,6 +337,7 @@
[FUSCacheDataShare shareStore].originType = nil; [FUSCacheDataShare shareStore].originType = nil;
[FUSCacheDataShare shareStore].agentCode = nil; [FUSCacheDataShare shareStore].agentCode = nil;
[FUSSwiftCacheDataShare share].oc_isNewRegister = YES; [FUSSwiftCacheDataShare share].oc_isNewRegister = YES;
[[FUSRouter liveRouter] fus_setIsManualLoginBehavior:YES];
if (success) success(dataDict); if (success) success(dataDict);
} failure:^(NSDictionary *dataDict, int code) { } failure:^(NSDictionary *dataDict, int code) {
if (code == -911 && skip == 0) { if (code == -911 && skip == 0) {
...@@ -644,6 +647,8 @@ ...@@ -644,6 +647,8 @@
// 登录验证信息存储到本地 // 登录验证信息存储到本地
[FUSHistoryLoginStore fus_addHistoryLoginVerifyWithModel:userVerifyModel]; [FUSHistoryLoginStore fus_addHistoryLoginVerifyWithModel:userVerifyModel];
[[FUSRouter liveRouter] fus_setIsManualLoginBehavior:YES];
if (success) success(dataDict); if (success) success(dataDict);
} failure:^(NSDictionary *dataDict, int errorCode) { } failure:^(NSDictionary *dataDict, int errorCode) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment