admin
2022-09-04 fa05f89529e05078b29606e4beda3de5cfdce485
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//
//  LCDSceneRouterManager.h
//  LCDSDK
//
//  Created by iCuiCui on 2020/10/26.
//  Copyright © 2020 bytedance. All rights reserved.
//
 
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "LCDFeedDetailPageConfig.h"
 
NS_ASSUME_NONNULL_BEGIN
 
typedef NS_ENUM(NSUInteger, LCDSceneRouteCompletionState) {
    LCDSceneRouteCompletionState_dataValidateError = -2, // 跳转失败:数据校验失败缺失必要参数
    LCDSceneRouteCompletionState_dataParseError = -1, // 跳转失败:数据解析失败
    LCDSceneRouteCompletionState_success = 0 // 跳转成功
};
 
@interface LCDSceneRouteTransition : NSObject
 
@property (nonatomic) void(^completion)(LCDSceneRouteCompletionState state, NSString *msg);
 
@end
 
@interface LCDSceneRouterManager : NSObject
 
+ (instancetype)shareInstance;
 
/*! @abstract push跳转专用 ( 跳转进图文/视频详情页)
 @param groupID 当前推荐内容的文章页ID
 @param categoryName 频道名
 @param rootVC 跳转依赖的根控制器
 */
- (void)pushToPageDetailWithGroupID:(long long)groupID
                       categoryName:(NSString *)categoryName
                 rootViewController:(UIViewController *)rootVC
                      configBuilder:(void(^ _Nullable)(LCDFeedDetailPageConfig *config))configBuilder;
 
/*! @abstract 原生信息流/点赞评论专用 (跳转进图文/视频详情页/沉浸式小视频)
 @param groupID 当前推荐内容的文章页ID
 @param categoryName 频道名
 @param dataExtra 跳转所需的数据
 @param rootVC 跳转依赖的根控制器
 */
- (void)pushToPageDetailWithGroupID:(long long)groupID
                       categoryName:(NSString *)categoryName
                          dataExtra:(NSString * _Nullable)dataExtra
                 rootViewController:(UIViewController *)rootVC
                      configBuilder:(void(^ _Nullable)(LCDFeedDetailPageConfig *config))configBuilder;
/// @param newsFromGid 通过某个banner进入
- (void)pushToPageDetailWithGroupID:(long long)groupID
                       categoryName:(NSString *)categoryName
                          dataExtra:(NSString * _Nullable)dataExtra
                        newsFromGid:(long long)gid
                 rootViewController:(UIViewController *)rootVC
                      configBuilder:(void(^ _Nullable)(LCDFeedDetailPageConfig *config))configBuilder;
 
 
/*! @abstract 图文api跳转专用 ( 跳转进图文/视频详情页/沉浸式小视频)
 @param awakeData 图文api接口下发的awake_data数据
 @param rootVC 跳转依赖的根控制器
 @param configBuilder 详情页配置
 @param transitionBuilder 跳转回调
 */
- (void)pushToPageDetailWithAwakeData:(NSString *)awakeData
                   rootViewController:(UIViewController *)rootVC
                        configBuilder:(void(^ _Nullable)(LCDFeedDetailPageConfig *config))configBuilder
                    transitionBuilder:(void(^ _Nullable)(LCDSceneRouteTransition *config))transitionBuilder;
 
@end
 
NS_ASSUME_NONNULL_END