Action2Page.ets
3.48 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import ArrayList from '@ohos.util.ArrayList';
import { Action } from 'wdBean';
import { WDRouterPage } from './WDRouterPage';
interface HandleObject {
handle: (action: Action) => (WDRouterPage | undefined)
priority: number
}
export class Action2Page {
private static handles: Record<string, ArrayList<HandleObject>> = {};
static register(actionType: string, handle: (action: Action) => (WDRouterPage | undefined), priority: number = 0) {
let handles = Action2Page.handles[actionType] ?? new ArrayList();
let obj: HandleObject = {
handle: handle,
priority: priority
};
handles.add(obj);
handles.sort((f, s) => {
return f.priority - s.priority;
})
Action2Page.handles[actionType] = handles;
}
static get(action?: Action): WDRouterPage | undefined {
if (!action || !action.type) {
return undefined;
}
let handles = Action2Page.handles[action.type];
if (!handles) {
return undefined;
}
let page: WDRouterPage | undefined
for (let i = 0; i < handles.length; i++) {
let tmp = (handles[i] as HandleObject).handle(action);
if (tmp) {
page = tmp;
break
}
}
return page
}
}
export function registerRouter() {
// Action2Page.register("USER_LOGIN", (action: Action) => {
// return WDRouterPage.webLoginPage
// })
Action2Page.register("JUMP_DETAIL_PAGE", (action: Action) => {
if (action.params?.detailPageType == 2) {
return WDRouterPage.detailPlayLiveCommon
} else if (action.params?.detailPageType == 1) {
return WDRouterPage.detailVideoListPage
} else if (action.params?.detailPageType == 9) {
//图集详情页
return WDRouterPage.multiPictureDetailPage
} else if (action.params?.detailPageType == 14 || action.params?.detailPageType == 15) {
//动态详情页
return WDRouterPage.dynamicDetailPage
} else if (action.params?.detailPageType == 13) {
return WDRouterPage.audioDetail
} else if (action.params?.detailPageType == 30) {
return WDRouterPage.themeListPage
} else if (action.params?.detailPageType == 8) {
return WDRouterPage.imageTextDetailPage
}
//TODO: 以下两个最好改为pageID方式,以上都是有具体内容类型 对应详情页面
else if (action.params?.detailPageType == 18) {
return WDRouterPage.multiPictureListPage
} else if (action.params?.detailPageType == 19) {
return WDRouterPage.videoPlayPage
}
return WDRouterPage.detailPlayVodPage
})
Action2Page.register("JUMP_H5_BY_WEB_VIEW", (action) => {
return WDRouterPage.defaultWebPage
})
Action2Page.register("JUMP_INNER_NEW_PAGE", (action) => {
if (action.params?.pageID == "E_NEWSPAPER") {
return WDRouterPage.eNewspaper
} else if (action.params?.pageID == "MorningEveningPaper") {
return WDRouterPage.morningEveningPaperPage
} else if (action.params?.pageID == "IMAGE_TEXT_DETAIL") {
return WDRouterPage.imageTextDetailPage
} else if (action.params?.pageID == "BroadcastPage") {
return WDRouterPage.broadcastPage
} else if (action.params?.pageID == "SPACIAL_TOPIC_PAGE") {
return WDRouterPage.spacialTopicPage
} else if (action.params?.pageID == "LIVE_MORE_PAGE") {
return WDRouterPage.liveMorePage
} else if (action.params?.pageID == "ORDER_MORE_PAGE") {
return WDRouterPage.reserveMorePage
} else if (action.params?.pageID == "FeedBackActivity") {
return WDRouterPage.feedBackActivity
}
return undefined
})
}