Commit eed26852 by ludi

Merge branch 'feature/私享房需求' of http://git.yabolive.net:88/pidan/FuSiLive into feature/私享房需求

# Conflicts:
#	DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/Http/FUSCommonURLs.h
#	DevelopmentPods/FUSCommon/FUSCommon/Classes/Foundation/Http/FUSCommonURLs.m
#	DevelopmentPods/FUSCommon/FUSCommon/FUSRouter/Routers/UserRouter/FUSUserRouterProtocol.h
#	FuSiLive/AppDelegate.m
parents 30c8b82d 33b0e479
......@@ -21,6 +21,11 @@
#define FUSUserModule BFModule(FUSUserRouterProtocol)
/**
登录结果回调,包括成功失败回调
*/
typedef void(^FUSLoginSucceedListenerHandler)(void);
NS_ASSUME_NONNULL_BEGIN
@protocol FUSUserRouterProtocol <BifrostModuleProtocol>
......@@ -35,6 +40,9 @@ NS_ASSUME_NONNULL_BEGIN
- (void)fus_checkAppStatus;
/// 监听是否有已经登录的监听
- (void)fus_loginSucceedListener:(FUSLoginSucceedListenerHandler)loginSucceedListenerHandler;
- (void)fus_enterUserZone:(NSString *)userId;
- (void)fus_enterUserZone:(NSString *)userId isFromLiveRoomChat:(BOOL)isFromLiveRoomChat;
......@@ -46,6 +54,8 @@ NS_ASSUME_NONNULL_BEGIN
/// - extraParm: 额外参数,key参考FUSCommonExtraKeys类
- (void)fus_enterUserZone:(NSString *)userId isFromLiveRoomChat:(BOOL)isFromLiveRoomChat extraParm:(NSDictionary *)extraParm;
- (void)fus_enterTopicDetailPage:(NSString *)topicId;
- (void)fus_enterMotorWareVC;
/// 进入任务中心
......
......@@ -12,7 +12,7 @@
<key>NotificationService.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>86</integer>
<integer>87</integer>
</dict>
</dict>
</dict>
......
......@@ -20,6 +20,17 @@ static NSString *const kGtAppId = @"2ecfODySFs8GlqYu7H2hW9";
static NSString *const kGtAppKey = @"tjOur8OKTU7srFHoA0lB91";
static NSString *const kGtAppSecret = @"OSSSWqbWY0ACJiUv4AHdW7";
static NSString * const openAppEventSchedule = @"openAppEventSchedule";
typedef NS_ENUM(NSInteger, FFOutsideJumpAPPType) {
FFOutsideJumpAPPTypePushLive,
FFOutsideJumpAPPTypeEnterRoom,
FFOutsideJumpAPPTypeEnterZone,
FFOutsideJumpAPPTypeWeb,
FFOutsideJumpAPPTypeFansClub,
FFOutsideJumpAPPTypeDynamic
};
@interface AppDelegate ()<UNUserNotificationCenterDelegate, GeTuiSdkDelegate,UIApplicationDelegate>
@end
......@@ -110,36 +121,6 @@ static NSString *const kGtAppSecret = @"OSSSWqbWY0ACJiUv4AHdW7";
}];
}
// 支付回调, 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([[FUSThirdAccountLoginHelper sharedInstanse] fus_isOpenSocializedPlatformURL:url]) {
FUSSocializedPlatform platform = [[FUSThirdAccountLoginHelper sharedInstanse] platformForOpenURL:url];
return [[FUSThirdAccountLoginHelper sharedInstanse] fus_sociallizedPlatform:platform OpenApplication:app openURL:url options:options];
}
NSString *urlDecodingString = [FUSUrlDecode fus_urlDecodedString:url.absoluteString];
//TODO:看看这是要做咩: added By Pidan
if ([urlDecodingString containsString:@"FusiClub://www.fusiclub.com"]) {
[[FUSThirdAccountLoginHelper sharedInstanse] fus_handlerSafariLoginSucceedWithURL:urlDecodingString];
return YES;
}
NSString *sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey];
if ([sourceApplication isEqualToString:@"com.apple.AppStore"]) {
// 应用是从 App Store 通过 URL Scheme 打开的
[FUSDataStatisticsManager fus_behaviorExternalCallLogWithReqType:4 reqEventType:1 reqJson:@""];
}
// 网页跳转
[[FUSHandleEventHelper shared] fus_oc_fus_handlerUrlOpenAppActionWithUrl:url];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
[Bifrost checkAllModulesWithSelector:@selector(applicationWillResignActive:) arguments:@[application]];
}
......@@ -170,6 +151,13 @@ static NSString *const kGtAppSecret = @"OSSSWqbWY0ACJiUv4AHdW7";
}
- (BOOL)application:(UIApplication *)app continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
if (userActivity.webpageURL) {
[self fus_handlerUrlOpenAppActionWithURL:userActivity.webpageURL];
}
}
//其他代码
if (userActivity.activityType == NSUserActivityTypeBrowsingWeb) {
NSURL *url = userActivity.webpageURL;
......@@ -180,6 +168,139 @@ static NSString *const kGtAppSecret = @"OSSSWqbWY0ACJiUv4AHdW7";
return YES;
}
// 支付回调, 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([[FUSThirdAccountLoginHelper sharedInstanse] fus_isOpenSocializedPlatformURL:url]) {
FUSSocializedPlatform platform = [[FUSThirdAccountLoginHelper sharedInstanse] platformForOpenURL:url];
return [[FUSThirdAccountLoginHelper sharedInstanse] fus_sociallizedPlatform:platform OpenApplication:app openURL:url options:options];
}
NSString *urlDecodingString = [FUSUrlDecode fus_urlDecodedString:url.absoluteString];
//TODO:看看这是要做咩: added By Pidan
if ([urlDecodingString containsString:@"FusiClub://www.fusiclub.com"]) {
[[FUSThirdAccountLoginHelper sharedInstanse] fus_handlerSafariLoginSucceedWithURL:urlDecodingString];
return YES;
}
NSString *sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey];
if ([sourceApplication isEqualToString:@"com.apple.AppStore"]) {
// 应用是从 App Store 通过 URL Scheme 打开的
[FUSDataStatisticsManager fus_behaviorExternalCallLogWithReqType:4 reqEventType:1 reqJson:@""];
}
[self fus_handlerUrlOpenAppActionWithURL:url];
return YES;
}
- (void)fus_handlerUrlOpenAppActionWithURL:(NSURL *)url {
NSString *absoluteString = [url absoluteString];
if ([absoluteString containsString:openAppEventSchedule]) {
NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
if (components.queryItems.count > 0) {
for (NSURLQueryItem *item in components.queryItems) {
if ([item.name isEqualToString:openAppEventSchedule] && item.value) {
NSData *jsonData = [[NSData alloc] initWithBase64EncodedString:item.value options:0];
NSError *error = nil;
id dataJson = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
if (error) continue;
id data = [dataJson objectForKey:@"openData"];
if (!data || [data isKindOfClass:[NSNull class]] || ([data respondsToSelector:@selector(length)] && [(NSData *)data length] == 0)) {
data = dataJson;
}
// id behaviorLog = [dataJson objectForKey:@"behaviorLog"];
// NSInteger reqType = [[behaviorLog objectForKey:@"reqType"] integerValue];
// if (reqType != 0) {
// [[NSNotificationCenter defaultCenter] postNotificationName:@"FUSBehaviorExternalCallLog" object:nil userInfo:@{
// @"reqType": @(reqType),
// @"reqJson": [NSString stringWithFormat:@"%@", behaviorLog]
// }];
// }
[FUSRouter.userRouter fus_loginSucceedListener:^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSInteger rawType = [[dataJson objectForKey:@"type"] integerValue];
FFOutsideJumpAPPType type = rawType;
switch (type) {
case FFOutsideJumpAPPTypePushLive:
[FUSRouter.liveRouter fus_pushLive];
break;
case FFOutsideJumpAPPTypeEnterRoom: {
NSString *roomId = [[data objectForKey:@"paramInfo"] description];
// NSLog(@"enterLiveRoom: %@", roomId);
// id behaviorLog = [dataJson objectForKey:@"behaviorLog"];
// NSInteger liveType = [[behaviorLog objectForKey:@"liveType"] integerValue];
// if (liveType != 0) {
// [[NSNotificationCenter defaultCenter] postNotificationName:@"FUSBehaviorJoinRoomLog" object:nil userInfo:@{
// @"reqType": @5,
// @"reqEventType": @(liveType),
// @"roomId": roomId
// }];
// }
[FUSRouter.liveRouter fus_enterLiveRoom:roomId];
break;
}
case FFOutsideJumpAPPTypeEnterZone: {
NSString *uid = [[data objectForKey:@"paramInfo"] description];
[FUSRouter.userRouter fus_enterUserZone:uid];
break;
}
case FFOutsideJumpAPPTypeWeb: {
NSString *webParams = [[data objectForKey:@"paramInfo"] stringValue];
DebugEnv env = [[[NSUserDefaults standardUserDefaults] objectForKey:CURRENT_DEBUG_ENV] integerValue];
NSString *urlStr = FUSCommonWebURLs.fus_scheduleOpenUrlMiddlewareUrl;
if (env == DebugEnvTest) {
urlStr = FUSCommonWebURLs.fus_scheduleOpenUrlMiddlewareTestUrl;
}
urlStr = [NSString stringWithFormat:@"%@%@",urlStr, webParams];
FUSWKWebViewController *webVC = [[FUSWKWebViewController alloc] init];
webVC.webUrlString = urlStr;
webVC.needShowReload = YES;
webVC.shouldIncludeIdentifyInfo = YES;
[[UIViewController fus_topViewController].navigationController pushViewController:webVC animated:YES];
break;
}
case FFOutsideJumpAPPTypeFansClub: {
// NSString *groupId = [[dataJson objectForKey:@"data"] stringValue];
// NSLog(@"进入粉丝群组: %@", groupId);
break;
}
case FFOutsideJumpAPPTypeDynamic: {
NSString *topicId = [[dataJson objectForKey:@"topicId"] description];
[FUSRouter.userRouter fus_enterTopicDetailPage:topicId];
break;
}
default:
break;
}
});
}];
}
}
}
}
}
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
// iOS 10: 点击通知进入App时触发,在该方法内统计有效用户点击数
......
......@@ -8,5 +8,9 @@
<array>
<string>Default</string>
</array>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:fusiclub.com</string>
</array>
</dict>
</plist>
......@@ -7,12 +7,12 @@
<key>FUSChatCenterBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>89</integer>
<integer>84</integer>
</dict>
<key>FUSChatCenterModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>88</integer>
<integer>83</integer>
</dict>
</dict>
</dict>
......
......@@ -7,12 +7,12 @@
<key>FUSShowRoomBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>84</integer>
<integer>89</integer>
</dict>
<key>FUSShowRoomModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>85</integer>
<integer>86</integer>
</dict>
</dict>
</dict>
......
......@@ -7,12 +7,12 @@
<key>FUSUserCenterModule.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>83</integer>
<integer>85</integer>
</dict>
<key>FUSUserCenterModuleBundle.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>87</integer>
<integer>88</integer>
</dict>
</dict>
</dict>
......
......@@ -29,6 +29,9 @@ typedef void(^loginCompletion)(int code, NSString *msg);
*/
- (void)fus_readyToLogInWithCompletion:(loginCompletion)loginCompletion;
/// 监听是否有已经登录的监听
- (void)fus_loginSucceedListener:(FUSLoginSucceedListenerHandler)loginSucceedListenerHandler;
/**
手机号码登录
......
......@@ -52,6 +52,9 @@
// Socket 校验 Timer
@property (nonatomic, strong) NSTimer *socketCheckTimer;
/// 登录状态监听
@property (nonatomic, strong) NSMutableArray<FUSLoginSucceedListenerHandler> *loginListeners;
@end
@implementation FUSLoginHelper
......@@ -71,6 +74,14 @@
return instance;
}
- (instancetype)init {
self = [super init];
if (self) {
self.loginListeners = [NSMutableArray array];
}
return self;
}
/**
登录准备
......@@ -357,6 +368,13 @@
if (_loginCompletion) _loginCompletion(1, [NSString fus_localString:@"成功"]);
_loginCompletion = nil;
NSArray *loginListeners = [self.loginListeners copy];
for (FUSLoginSucceedListenerHandler listener in loginListeners) {
listener();
}
[self.loginListeners removeAllObjects];
// 注册监听相关通知
[[FUSRecieveNotificationHelper sharedInstance] fus_setup];
......@@ -468,6 +486,23 @@
[[FUSSwiftCacheDataShare share] fus_dealLoginSuccess];
}
- (void)fus_loginSucceedListener:(FUSLoginSucceedListenerHandler)loginSucceedListenerHandler {
if (![FUSCacheDataShare shareStore].userVerifyInfo.uid) {
if (loginSucceedListenerHandler) {
[self.loginListeners addObject:loginSucceedListenerHandler];
}
return;
} else {
if (loginSucceedListenerHandler) {
loginSucceedListenerHandler();
}
}
}
#pragma mark - Method
/**
进行 Socket 连接
......
......@@ -1255,7 +1255,7 @@
FUSMyZoneViewController *zoneViewCtrl = [[FUSMyZoneViewController alloc] init];
zoneViewCtrl.isFromLiveRoomChat = NO;
zoneViewCtrl.zoneUid = zoneId;
zoneViewCtrl.behaviorSrc = 4;
zoneViewCtrl.behaviorSrc = @"4";
[[[UIViewController fus_topViewController] navigationController] pushViewController:zoneViewCtrl animated:YES];
// [self fus_hideKeyboard];
}
......
......@@ -89,6 +89,11 @@
#pragma mark - Protocal Methods
/// 监听是否有已经登录的监听
- (void)fus_loginSucceedListener:(FUSLoginSucceedListenerHandler)loginSucceedListenerHandler {
[FUSLoginHelper.sharedInstance fus_loginSucceedListener:loginSucceedListenerHandler];
}
- (FUSPublicHalfScreenPhotoView *)createHalfScreenPhotoViewWithFrame:(CGRect)frame {
return [[FUSHalfScreenPhotoView alloc] initWithFrameWithClearManager:frame];
}
......@@ -116,6 +121,15 @@
case 4: {
NSString *topicId = [info[@"topicId"] description];
[self fus_enterTopicDetailPage:topicId];
break;
}
default:
break;
}
}
- (void)fus_enterTopicDetailPage:(NSString *)topicId {
if ([NSString isNull:topicId]) {
return;
}
......@@ -165,11 +179,6 @@
feedListVC.from = 1;
[[UIViewController fus_topViewController].navigationController pushViewController:feedListVC animated:YES];
}];
break;
}
default:
break;
}
}
- (void)fus_enterUserZone:(NSString *)userId {
......
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