Showing
46 changed files
with
494 additions
and
189 deletions
| @@ -2,8 +2,8 @@ | @@ -2,8 +2,8 @@ | ||
| 2 | "app": { | 2 | "app": { |
| 3 | "bundleName": "com.peopledailychina.hosactivity", | 3 | "bundleName": "com.peopledailychina.hosactivity", |
| 4 | "vendor": "$string:app_vendor", | 4 | "vendor": "$string:app_vendor", |
| 5 | - "versionCode": 10000, | ||
| 6 | - "versionName": "1.0.0", | 5 | + "versionCode": 7370, |
| 6 | + "versionName": "7.3.7.0", | ||
| 7 | "icon": "$media:app_icon", | 7 | "icon": "$media:app_icon", |
| 8 | "label": "$string:app_name" | 8 | "label": "$string:app_name" |
| 9 | } | 9 | } |
| @@ -17,6 +17,14 @@ | @@ -17,6 +17,14 @@ | ||
| 17 | "value": "13fp" | 17 | "value": "13fp" |
| 18 | }, | 18 | }, |
| 19 | { | 19 | { |
| 20 | + "name": "font_size_13_5", | ||
| 21 | + "value": "13.5fp" | ||
| 22 | + }, | ||
| 23 | + { | ||
| 24 | + "name": "font_size_13_2", | ||
| 25 | + "value": "13.2fp" | ||
| 26 | + }, | ||
| 27 | + { | ||
| 20 | "name": "font_size_14", | 28 | "name": "font_size_14", |
| 21 | "value": "14fp" | 29 | "value": "14fp" |
| 22 | }, | 30 | }, |
| 1 | +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="24" height="24" viewBox="0 0 24 24"><g><g></g><g style="opacity:0.5;"><g><path d="M20.314453125,11.330568125C20.314453125,6.360008125,16.285053124999997,2.330566406,11.314453125,2.330566406C6.343893125,2.330566406,2.314453125,6.360008125,2.314453125,11.330568125C2.314453125,13.375078125,2.999354125,15.317678125,4.237673125,16.891578125000002C5.933093125,19.046478125,8.518933125,20.330578125,11.314453125,20.330578125C16.285053124999997,20.330578125,20.314453125,16.301178125,20.314453125,11.330568125ZM4.314453125,11.330568125C4.314453125,7.464568125,7.448463125,4.330568125,11.314453125,4.330568125C15.180453125,4.330568125,18.314453125,7.464568125,18.314453125,11.330568125C18.314453125,15.196578125,15.180453125,18.330578125,11.314453125,18.330578125C9.138813125,18.330578125,7.129653125,17.332878125,5.8094931249999995,15.654978125C4.846133125,14.430478125,4.314453125,12.922378125,4.314453125,11.330568125Z" fill-rule="evenodd" fill="#8794A3" fill-opacity="1"/></g><g transform="matrix(0.7071067690849304,0.7071067690849304,-0.7071067690849304,0.7071067690849304,16.41416933434084,-7.627309776376933)" style="opacity:0.800000011920929;"><path d="M17.6140625,16L22.7906525,16C22.9393225,16,23.0360225,16.156463,22.9695325,16.289443L22.1695325,17.88944C22.1356625,17.9572,22.0664025,18,21.9906525,18L17.6140625,18C17.5036056,18,17.4140625,17.91046,17.4140625,17.8L17.4140625,16.2C17.4140625,16.0895431,17.5036056,16,17.6140625,16" fill="#8794A3" fill-opacity="0.800000011920929"/></g></g></g></svg> |
| 1 | +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="24" height="24" viewBox="0 0 24 24"><g><g></g><g style="opacity:0.5;"><g><path d="M20.314453125,11.330568125C20.314453125,6.360008125,16.285053124999997,2.330566406,11.314453125,2.330566406C6.343893125,2.330566406,2.314453125,6.360008125,2.314453125,11.330568125C2.314453125,13.375078125,2.999354125,15.317678125,4.237673125,16.891578125000002C5.933093125,19.046478125,8.518933125,20.330578125,11.314453125,20.330578125C16.285053124999997,20.330578125,20.314453125,16.301178125,20.314453125,11.330568125ZM4.314453125,11.330568125C4.314453125,7.464568125,7.448463125,4.330568125,11.314453125,4.330568125C15.180453125,4.330568125,18.314453125,7.464568125,18.314453125,11.330568125C18.314453125,15.196578125,15.180453125,18.330578125,11.314453125,18.330578125C9.138813125,18.330578125,7.129653125,17.332878125,5.8094931249999995,15.654978125C4.846133125,14.430478125,4.314453125,12.922378125,4.314453125,11.330568125Z" fill-rule="evenodd" fill="#000000" fill-opacity="1"/></g><g transform="matrix(0.7071067690849304,0.7071067690849304,-0.7071067690849304,0.7071067690849304,16.41416933434084,-7.627309776376933)" style="opacity:0.800000011920929;"><path d="M17.6140625,16L22.7906525,16C22.9393225,16,23.0360225,16.156463,22.9695325,16.289443L22.1695325,17.88944C22.1356625,17.9572,22.0664025,18,21.9906525,18L17.6140625,18C17.5036056,18,17.4140625,17.91046,17.4140625,17.8L17.4140625,16.2C17.4140625,16.0895431,17.5036056,16,17.6140625,16" fill="#000000" fill-opacity="0.800000011920929"/></g></g></g></svg> |
| @@ -40,6 +40,9 @@ instance.interceptors.request.use( | @@ -40,6 +40,9 @@ instance.interceptors.request.use( | ||
| 40 | // 公共请求参数 | 40 | // 公共请求参数 |
| 41 | // config.params.key = key | 41 | // config.params.key = key |
| 42 | Logger.debug('HttpRequest', 'request: ' + config.url) | 42 | Logger.debug('HttpRequest', 'request: ' + config.url) |
| 43 | + // TODO 临时打印token,测试token失效。待删除 | ||
| 44 | + Logger.debug('HttpRequest', 'request token: ' + config?.headers?.get('RMRB-X-TOKEN')) | ||
| 45 | + Logger.debug('HttpRequest', 'request cookie: ' + config?.headers?.get('cookie')) | ||
| 43 | return config; | 46 | return config; |
| 44 | }, | 47 | }, |
| 45 | (error: AxiosError) => { | 48 | (error: AxiosError) => { |
| @@ -29,10 +29,11 @@ export class HttpBizUtil { | @@ -29,10 +29,11 @@ export class HttpBizUtil { | ||
| 29 | // 403:临时token;406:强制下线、封禁、清空登录信息还要跳转登录页面 | 29 | // 403:临时token;406:强制下线、封禁、清空登录信息还要跳转登录页面 |
| 30 | if (res.code == 403 || res.code == 406) { | 30 | if (res.code == 403 || res.code == 406) { |
| 31 | HttpBizUtil.refreshToken().then((token: string) => { | 31 | HttpBizUtil.refreshToken().then((token: string) => { |
| 32 | - if (headers) { | ||
| 33 | - headers.replace('RMRB-X-TOKEN', token) | ||
| 34 | - headers.replace('cookie', 'RMRB-X-TOKEN=' + token) | 32 | + if (!headers) { |
| 33 | + headers = new HashMap() | ||
| 35 | } | 34 | } |
| 35 | + headers?.replace('RMRB-X-TOKEN', token) | ||
| 36 | + headers?.replace('cookie', 'RMRB-X-TOKEN=' + token) | ||
| 36 | Logger.debug(TAG, 'get again send: ' + token) | 37 | Logger.debug(TAG, 'get again send: ' + token) |
| 37 | // refreshToken为空场景不处理,直接请求接口。 | 38 | // refreshToken为空场景不处理,直接请求接口。 |
| 38 | WDHttp.get<T>(url, headers).then((againResDTO: T) => { | 39 | WDHttp.get<T>(url, headers).then((againResDTO: T) => { |
| @@ -67,10 +68,11 @@ export class HttpBizUtil { | @@ -67,10 +68,11 @@ export class HttpBizUtil { | ||
| 67 | Logger.debug(TAG, 'post catch error: ' + JSON.stringify(res)) | 68 | Logger.debug(TAG, 'post catch error: ' + JSON.stringify(res)) |
| 68 | if (res.code == 403 || res.code == 406) { | 69 | if (res.code == 403 || res.code == 406) { |
| 69 | HttpBizUtil.refreshToken().then((token: string) => { | 70 | HttpBizUtil.refreshToken().then((token: string) => { |
| 70 | - if (headers) { | ||
| 71 | - headers.replace('RMRB-X-TOKEN', token) | ||
| 72 | - headers.replace('cookie', 'RMRB-X-TOKEN=' + token) | 71 | + if (!headers) { |
| 72 | + headers = new HashMap() | ||
| 73 | } | 73 | } |
| 74 | + headers?.replace('RMRB-X-TOKEN', token) | ||
| 75 | + headers?.replace('cookie', 'RMRB-X-TOKEN=' + token) | ||
| 74 | Logger.debug(TAG, 'post again send: ' + token) | 76 | Logger.debug(TAG, 'post again send: ' + token) |
| 75 | // refreshToken为空场景不处理,直接请求接口。 | 77 | // refreshToken为空场景不处理,直接请求接口。 |
| 76 | WDHttp.post<T>(url, data, headers).then((againResDTO: T) => { | 78 | WDHttp.post<T>(url, data, headers).then((againResDTO: T) => { |
| @@ -32,6 +32,11 @@ export class HttpUrlUtils { | @@ -32,6 +32,11 @@ export class HttpUrlUtils { | ||
| 32 | * 详情页面详情接口 | 32 | * 详情页面详情接口 |
| 33 | */ | 33 | */ |
| 34 | static readonly DETAIL_PATH: string = "/api/rmrb-bff-display-zh/content/zh/c/content/detail"; | 34 | static readonly DETAIL_PATH: string = "/api/rmrb-bff-display-zh/content/zh/c/content/detail"; |
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * 获取视频直播间拉流地址 | ||
| 38 | + */ | ||
| 39 | + static readonly PULL_STREAM_PATH: string = "/api/live-center-video/zh/c/vlive/pull-stream/"; | ||
| 35 | /** | 40 | /** |
| 36 | * 批查接口,查询互动相关数据,如收藏数、评论数等 | 41 | * 批查接口,查询互动相关数据,如收藏数、评论数等 |
| 37 | */ | 42 | */ |
| @@ -70,6 +70,8 @@ export { NewspaperTimeItemBean } from './src/main/ets/bean/newspaper/NewspaperTi | @@ -70,6 +70,8 @@ export { NewspaperTimeItemBean } from './src/main/ets/bean/newspaper/NewspaperTi | ||
| 70 | 70 | ||
| 71 | export { ContentDetailDTO } from './src/main/ets/bean/detail/ContentDetailDTO'; | 71 | export { ContentDetailDTO } from './src/main/ets/bean/detail/ContentDetailDTO'; |
| 72 | 72 | ||
| 73 | +export { GetPullAddressBean } from './src/main/ets/bean/live/GetPullAddressBean'; | ||
| 74 | + | ||
| 73 | export { RmhInfoDTO } from './src/main/ets/bean/detail/RmhInfoDTO'; | 75 | export { RmhInfoDTO } from './src/main/ets/bean/detail/RmhInfoDTO'; |
| 74 | 76 | ||
| 75 | export { UserInfoDTO } from './src/main/ets/bean/detail/UserInfoDTO'; | 77 | export { UserInfoDTO } from './src/main/ets/bean/detail/UserInfoDTO'; |
| @@ -19,4 +19,9 @@ export interface RmhInfoDTO { | @@ -19,4 +19,9 @@ export interface RmhInfoDTO { | ||
| 19 | userId: string; | 19 | userId: string; |
| 20 | userType: string; | 20 | userType: string; |
| 21 | honoraryIcon:string; | 21 | honoraryIcon:string; |
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 发布标识,0-cms;1-表示号主发布 | ||
| 25 | + */ | ||
| 26 | + rmhPlatform:number | ||
| 22 | } | 27 | } |
| 1 | +/** | ||
| 2 | + * 获取拉流地址解析类 | ||
| 3 | + */ | ||
| 4 | +export class GetPullAddressBean { | ||
| 5 | + origin: OriginBean = new OriginBean(); | ||
| 6 | + transCode: Array<TransCodeBean> = new Array; | ||
| 7 | +} | ||
| 8 | + | ||
| 9 | +class OriginBean { | ||
| 10 | + expireTime: number = -1; | ||
| 11 | + definition: string = ''; | ||
| 12 | + flvUrl: string = ''; | ||
| 13 | + m3u8Url: string = ''; | ||
| 14 | + rtmpUrl: string = ''; | ||
| 15 | + rtsUrl: string = ''; | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +export class TransCodeBean { | ||
| 19 | + expireTime: number = -1; | ||
| 20 | + definition: string = ''; | ||
| 21 | + flvUrl: string = ''; | ||
| 22 | + m3u8Url: string = ''; | ||
| 23 | + rtmpUrl: string = ''; | ||
| 24 | + rtsUrl: string = ''; | ||
| 25 | +} |
| @@ -97,6 +97,10 @@ export struct FeedBackActivity { | @@ -97,6 +97,10 @@ export struct FeedBackActivity { | ||
| 97 | TextArea({ placeholder: $r('app.string.feedback_comments') }) | 97 | TextArea({ placeholder: $r('app.string.feedback_comments') }) |
| 98 | .width(CommonConstants.FULL_WIDTH) | 98 | .width(CommonConstants.FULL_WIDTH) |
| 99 | .height(CommonConstants.FULL_HEIGHT) | 99 | .height(CommonConstants.FULL_HEIGHT) |
| 100 | + .fontColor($r('app.color.color_222222')) | ||
| 101 | + .fontSize($r('app.float.font_size_13_2')) | ||
| 102 | + .placeholderColor($r('app.color.color_CCCCCC')) | ||
| 103 | + .placeholderFont({size:$r('app.float.font_size_13_2')}) | ||
| 100 | .padding({bottom:96}) | 104 | .padding({bottom:96}) |
| 101 | .backgroundColor($r('app.color.color_F5F5F5')) | 105 | .backgroundColor($r('app.color.color_F5F5F5')) |
| 102 | .align(Alignment.TopStart) | 106 | .align(Alignment.TopStart) |
| @@ -170,6 +174,8 @@ export struct FeedBackActivity { | @@ -170,6 +174,8 @@ export struct FeedBackActivity { | ||
| 170 | .margin({bottom: $r('app.float.vp_12'), right: $r('app.float.vp_12'),left: $r('app.float.vp_12')}) | 174 | .margin({bottom: $r('app.float.vp_12'), right: $r('app.float.vp_12'),left: $r('app.float.vp_12')}) |
| 171 | Text(this.textNumLabel) | 175 | Text(this.textNumLabel) |
| 172 | .margin({bottom: $r('app.float.vp_12'), right: $r('app.float.vp_11')}) | 176 | .margin({bottom: $r('app.float.vp_12'), right: $r('app.float.vp_11')}) |
| 177 | + .fontColor($r('app.color.color_999999')) | ||
| 178 | + .fontSize($r('app.float.font_size_13_5')) | ||
| 173 | } | 179 | } |
| 174 | .height(200) | 180 | .height(200) |
| 175 | .width('94%') | 181 | .width('94%') |
| @@ -182,7 +188,7 @@ export struct FeedBackActivity { | @@ -182,7 +188,7 @@ export struct FeedBackActivity { | ||
| 182 | 188 | ||
| 183 | Text($r('app.string.feedback_email')) | 189 | Text($r('app.string.feedback_email')) |
| 184 | .fontColor($r('app.color.color_222222')) | 190 | .fontColor($r('app.color.color_222222')) |
| 185 | - .fontSize($r('app.float.font_size_14')) | 191 | + .fontSize($r('app.float.font_size_13_2')) |
| 186 | .width('94%') | 192 | .width('94%') |
| 187 | .margin({ top: $r('app.float.margin_24') }) | 193 | .margin({ top: $r('app.float.margin_24') }) |
| 188 | Row() { | 194 | Row() { |
| @@ -232,6 +238,7 @@ export struct FeedBackActivity { | @@ -232,6 +238,7 @@ export struct FeedBackActivity { | ||
| 232 | } | 238 | } |
| 233 | }.margin({bottom:20}) | 239 | }.margin({bottom:20}) |
| 234 | } | 240 | } |
| 241 | + .backgroundColor($r('app.color.color_fff')) | ||
| 235 | } | 242 | } |
| 236 | 243 | ||
| 237 | /** | 244 | /** |
| @@ -58,6 +58,12 @@ export struct AppointmentListUI { | @@ -58,6 +58,12 @@ export struct AppointmentListUI { | ||
| 58 | } | 58 | } |
| 59 | } | 59 | } |
| 60 | } else { | 60 | } else { |
| 61 | + Stack(){ | ||
| 62 | + Row() | ||
| 63 | + .width("100%") | ||
| 64 | + .height("100%") | ||
| 65 | + .backgroundColor($r('app.color.color_F9F9F9')) | ||
| 66 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 61 | CustomPullToRefresh({ | 67 | CustomPullToRefresh({ |
| 62 | alldata:this.data, | 68 | alldata:this.data, |
| 63 | scroller:this.scroller, | 69 | scroller:this.scroller, |
| @@ -84,7 +90,8 @@ export struct AppointmentListUI { | @@ -84,7 +90,8 @@ export struct AppointmentListUI { | ||
| 84 | }) | 90 | }) |
| 85 | } | 91 | } |
| 86 | } | 92 | } |
| 87 | - .backgroundColor($r('app.color.color_F9F9F9')) | 93 | + } |
| 94 | + .backgroundColor($r('app.color.color_transparent')) | ||
| 88 | .height('100%') | 95 | .height('100%') |
| 89 | .width('100%') | 96 | .width('100%') |
| 90 | } | 97 | } |
| @@ -117,9 +117,6 @@ export struct FollowChildComponent{ | @@ -117,9 +117,6 @@ export struct FollowChildComponent{ | ||
| 117 | }.height('202lpx') | 117 | }.height('202lpx') |
| 118 | .justifyContent(FlexAlign.Start) | 118 | .justifyContent(FlexAlign.Start) |
| 119 | 119 | ||
| 120 | - // Text().backgroundColor($r('app.color.color_EDEDED')) | ||
| 121 | - // .width('100%') | ||
| 122 | - // .height('2lpx') | ||
| 123 | Divider() | 120 | Divider() |
| 124 | .width('100%') | 121 | .width('100%') |
| 125 | .height('2lpx') | 122 | .height('2lpx') |
| @@ -236,10 +233,6 @@ export struct FollowChildComponent{ | @@ -236,10 +233,6 @@ export struct FollowChildComponent{ | ||
| 236 | }.height('146lpx') | 233 | }.height('146lpx') |
| 237 | .justifyContent(FlexAlign.Center) | 234 | .justifyContent(FlexAlign.Center) |
| 238 | 235 | ||
| 239 | - // Text().backgroundColor($r('app.color.color_EDEDED')) | ||
| 240 | - // .width('100%') | ||
| 241 | - // .height('2lpx') | ||
| 242 | - | ||
| 243 | Divider() | 236 | Divider() |
| 244 | .width('100%') | 237 | .width('100%') |
| 245 | .height('2lpx') | 238 | .height('2lpx') |
| @@ -95,6 +95,8 @@ export struct FollowFirstTabsComponent{ | @@ -95,6 +95,8 @@ export struct FollowFirstTabsComponent{ | ||
| 95 | TabContent(){ | 95 | TabContent(){ |
| 96 | FollowSecondTabsComponent({data:$data,firstIndex:index}) | 96 | FollowSecondTabsComponent({data:$data,firstIndex:index}) |
| 97 | }.tabBar(this.TabBuilder(index,item)) | 97 | }.tabBar(this.TabBuilder(index,item)) |
| 98 | + .backgroundColor($r('app.color.white')) | ||
| 99 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 98 | }, (item: FollowListItem, index: number) => index.toString()) | 100 | }, (item: FollowListItem, index: number) => index.toString()) |
| 99 | } | 101 | } |
| 100 | .vertical(false) | 102 | .vertical(false) |
| @@ -108,9 +110,11 @@ export struct FollowFirstTabsComponent{ | @@ -108,9 +110,11 @@ export struct FollowFirstTabsComponent{ | ||
| 108 | trackTabFirstClick(this.data[index].directoryName) | 110 | trackTabFirstClick(this.data[index].directoryName) |
| 109 | }) | 111 | }) |
| 110 | .width('100%') | 112 | .width('100%') |
| 113 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 111 | .layoutWeight(1) | 114 | .layoutWeight(1) |
| 112 | } | 115 | } |
| 113 | }.width('100%') | 116 | }.width('100%') |
| 117 | + .height("100%") | ||
| 114 | } | 118 | } |
| 115 | 119 | ||
| 116 | reloadNetWork(){ | 120 | reloadNetWork(){ |
| @@ -91,8 +91,6 @@ export struct FollowListDetailUI { | @@ -91,8 +91,6 @@ export struct FollowListDetailUI { | ||
| 91 | ListItem() { | 91 | ListItem() { |
| 92 | FollowChildComponent({ data: item, type: this.type }) | 92 | FollowChildComponent({ data: item, type: this.type }) |
| 93 | } | 93 | } |
| 94 | - .onClick(() => { | ||
| 95 | - }) | ||
| 96 | }, (item: FollowListDetailItem) => item.creatorId) | 94 | }, (item: FollowListDetailItem) => item.creatorId) |
| 97 | 95 | ||
| 98 | //没有更多数据 显示提示 | 96 | //没有更多数据 显示提示 |
| @@ -102,6 +100,7 @@ export struct FollowListDetailUI { | @@ -102,6 +100,7 @@ export struct FollowListDetailUI { | ||
| 102 | } | 100 | } |
| 103 | } | 101 | } |
| 104 | } | 102 | } |
| 103 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 105 | .edgeEffect(EdgeEffect.None) | 104 | .edgeEffect(EdgeEffect.None) |
| 106 | .cachedCount(5) | 105 | .cachedCount(5) |
| 107 | .padding({ left: '31lpx', right: '31lpx' }) | 106 | .padding({ left: '31lpx', right: '31lpx' }) |
| @@ -118,6 +117,7 @@ export struct FollowListDetailUI { | @@ -118,6 +117,7 @@ export struct FollowListDetailUI { | ||
| 118 | } | 117 | } |
| 119 | } | 118 | } |
| 120 | .width('100%') | 119 | .width('100%') |
| 120 | + .layoutWeight(1) | ||
| 121 | } | 121 | } |
| 122 | 122 | ||
| 123 | async addFollowStatusObserver() { | 123 | async addFollowStatusObserver() { |
sight_harmony/features/wdComponent/src/main/ets/components/mine/follow/FollowSecondTabsComponent.ets
| @@ -22,15 +22,35 @@ export struct FollowSecondTabsComponent{ | @@ -22,15 +22,35 @@ export struct FollowSecondTabsComponent{ | ||
| 22 | 22 | ||
| 23 | if(this.data != null){ | 23 | if(this.data != null){ |
| 24 | if(this.data[this.firstIndex].children == null || this.data[this.firstIndex].children.length == 0){ | 24 | if(this.data[this.firstIndex].children == null || this.data[this.firstIndex].children.length == 0){ |
| 25 | + Stack({ alignContent: Alignment.Top }){ | ||
| 26 | + Row() | ||
| 27 | + .width("100%") | ||
| 28 | + .height("100%") | ||
| 29 | + .backgroundColor($r('app.color.color_transparent')) | ||
| 30 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 31 | + | ||
| 25 | FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].id,type:1}) | 32 | FollowListDetailUI({creatorDirectoryId:this.data[this.firstIndex].id,type:1}) |
| 33 | + .height("100%") | ||
| 34 | + .width("100%") | ||
| 35 | + }.width("100%") | ||
| 26 | .layoutWeight(1) | 36 | .layoutWeight(1) |
| 27 | }else{ | 37 | }else{ |
| 38 | + Stack({ alignContent: Alignment.Top }){ | ||
| 39 | + Row() | ||
| 40 | + .width("100%") | ||
| 41 | + .height("100%") | ||
| 42 | + .backgroundColor($r('app.color.color_transparent')) | ||
| 43 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 44 | + | ||
| 28 | this.FollowSecondUI() | 45 | this.FollowSecondUI() |
| 46 | + }.width("100%") | ||
| 47 | + .layoutWeight(1) | ||
| 29 | } | 48 | } |
| 30 | } | 49 | } |
| 31 | } | 50 | } |
| 32 | .width('100%') | 51 | .width('100%') |
| 33 | .layoutWeight(1) | 52 | .layoutWeight(1) |
| 53 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 34 | } | 54 | } |
| 35 | 55 | ||
| 36 | @Builder FollowSecondUI(){ | 56 | @Builder FollowSecondUI(){ |
| @@ -51,6 +71,7 @@ export struct FollowSecondTabsComponent{ | @@ -51,6 +71,7 @@ export struct FollowSecondTabsComponent{ | ||
| 51 | .scrollBar(BarState.Off) | 71 | .scrollBar(BarState.Off) |
| 52 | .height('100%') | 72 | .height('100%') |
| 53 | }.height('100%') | 73 | }.height('100%') |
| 74 | + .backgroundColor($r('app.color.color_F9F9F9')) | ||
| 54 | .alignItems(HorizontalAlign.Center) | 75 | .alignItems(HorizontalAlign.Center) |
| 55 | } | 76 | } |
| 56 | .alignItems(VerticalAlign.Top) | 77 | .alignItems(VerticalAlign.Top) |
| @@ -60,8 +81,7 @@ export struct FollowSecondTabsComponent{ | @@ -60,8 +81,7 @@ export struct FollowSecondTabsComponent{ | ||
| 60 | ForEach(this.data[this.firstIndex].children, (item: FollowSecondListItem, index: number ) => { | 81 | ForEach(this.data[this.firstIndex].children, (item: FollowSecondListItem, index: number ) => { |
| 61 | TabContent(){ | 82 | TabContent(){ |
| 62 | FollowThirdTabsComponent({data:$data,firstIndex:$firstIndex,secondIndex:index}) | 83 | FollowThirdTabsComponent({data:$data,firstIndex:$firstIndex,secondIndex:index}) |
| 63 | - } | ||
| 64 | - .backgroundColor($r('app.color.white')) | 84 | + }.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) |
| 65 | }, (item: FollowListItem, index: number) => index.toString()) | 85 | }, (item: FollowListItem, index: number) => index.toString()) |
| 66 | } | 86 | } |
| 67 | .vertical(true) | 87 | .vertical(true) |
| @@ -73,6 +93,7 @@ export struct FollowSecondTabsComponent{ | @@ -73,6 +93,7 @@ export struct FollowSecondTabsComponent{ | ||
| 73 | .barWidth(0) | 93 | .barWidth(0) |
| 74 | .height('100%') | 94 | .height('100%') |
| 75 | .layoutWeight(1) | 95 | .layoutWeight(1) |
| 96 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 76 | }.width('100%') | 97 | }.width('100%') |
| 77 | } | 98 | } |
| 78 | 99 |
| @@ -104,6 +104,8 @@ export struct FollowThirdTabsComponent{ | @@ -104,6 +104,8 @@ export struct FollowThirdTabsComponent{ | ||
| 104 | this.currentIndex = index | 104 | this.currentIndex = index |
| 105 | }) | 105 | }) |
| 106 | .width('100%') | 106 | .width('100%') |
| 107 | + .layoutWeight(1) | ||
| 108 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.BOTTOM]) | ||
| 107 | } | 109 | } |
| 108 | } | 110 | } |
| 109 | 111 |
| @@ -23,7 +23,7 @@ struct ChannelSubscriptionLayout { | @@ -23,7 +23,7 @@ struct ChannelSubscriptionLayout { | ||
| 23 | @Link myChannelList: TopNavDTO [] | 23 | @Link myChannelList: TopNavDTO [] |
| 24 | @Link moreChannelList: TopNavDTO [] | 24 | @Link moreChannelList: TopNavDTO [] |
| 25 | @Link localChannelList: TopNavDTO [] | 25 | @Link localChannelList: TopNavDTO [] |
| 26 | - @Link channelIds: number [] | 26 | + @State channelIds: number [] = [] |
| 27 | @State isShow: boolean = false | 27 | @State isShow: boolean = false |
| 28 | @State dragItem: number = -1 | 28 | @State dragItem: number = -1 |
| 29 | private dragRefOffsetX: number = 0 | 29 | private dragRefOffsetX: number = 0 |
| @@ -40,6 +40,9 @@ struct ChannelSubscriptionLayout { | @@ -40,6 +40,9 @@ struct ChannelSubscriptionLayout { | ||
| 40 | 40 | ||
| 41 | aboutToAppear() { | 41 | aboutToAppear() { |
| 42 | this.currentTopNavSelectedItem = this.myChannelList[this.currentTopNavSelectedIndex] | 42 | this.currentTopNavSelectedItem = this.myChannelList[this.currentTopNavSelectedIndex] |
| 43 | + this.myChannelList.forEach(item=>{ | ||
| 44 | + this.channelIds.push(item.channelId) | ||
| 45 | + }) | ||
| 43 | } | 46 | } |
| 44 | 47 | ||
| 45 | //交换我的频道数组中的位置 | 48 | //交换我的频道数组中的位置 |
| @@ -54,7 +57,8 @@ struct ChannelSubscriptionLayout { | @@ -54,7 +57,8 @@ struct ChannelSubscriptionLayout { | ||
| 54 | delChannelItem(index: number){ | 57 | delChannelItem(index: number){ |
| 55 | let item = this.myChannelList.splice(index, 1)[0] | 58 | let item = this.myChannelList.splice(index, 1)[0] |
| 56 | this.channelIds.splice(index, 1) | 59 | this.channelIds.splice(index, 1) |
| 57 | - AppStorage.setOrCreate('channelIds', this.channelIds.join(',')) | 60 | + AppStorage.setOrCreate('channelIds', JSON.stringify(this.channelIds)) |
| 61 | + console.log('delChannelItem',JSON.stringify(item),AppStorage.get('channelIds')) | ||
| 58 | if (item.moreChannel === '1') { | 62 | if (item.moreChannel === '1') { |
| 59 | this.moreChannelList.unshift(item) | 63 | this.moreChannelList.unshift(item) |
| 60 | } | 64 | } |
| @@ -29,7 +29,7 @@ struct FollowListPage { | @@ -29,7 +29,7 @@ struct FollowListPage { | ||
| 29 | //Tab 详情 | 29 | //Tab 详情 |
| 30 | FollowFirstTabsComponent({changeIndex:Number(this.curIndex)}) | 30 | FollowFirstTabsComponent({changeIndex:Number(this.curIndex)}) |
| 31 | } | 31 | } |
| 32 | - .backgroundColor($r('app.color.color_F9F9F9')) | 32 | + .backgroundColor($r('app.color.white')) |
| 33 | .height('100%') | 33 | .height('100%') |
| 34 | .width('100%') | 34 | .width('100%') |
| 35 | } | 35 | } |
| @@ -61,13 +61,17 @@ export struct MinePageComponent { | @@ -61,13 +61,17 @@ export struct MinePageComponent { | ||
| 61 | @Prop isMinePage:boolean = false; | 61 | @Prop isMinePage:boolean = false; |
| 62 | 62 | ||
| 63 | //第一次还没创建时候 pageShow 接收不到监听 | 63 | //第一次还没创建时候 pageShow 接收不到监听 |
| 64 | - pageShowForUpdateData(): void { | 64 | + async pageShowForUpdateData() { |
| 65 | if(this.isMinePage){ | 65 | if(this.isMinePage){ |
| 66 | + let userid = await SPHelper.default.get(SpConstants.USER_ID,"") | ||
| 67 | + if(StringUtils.isNotEmpty(userid)){ | ||
| 66 | this.getMessageData() | 68 | this.getMessageData() |
| 69 | + } | ||
| 70 | + | ||
| 67 | this.pageShowTime = DateTimeUtils.getTimeStamp() | 71 | this.pageShowTime = DateTimeUtils.getTimeStamp() |
| 68 | } | 72 | } |
| 69 | } | 73 | } |
| 70 | - pageHideForUpdateData(): void { | 74 | + pageHideForUpdateData(){ |
| 71 | if(this.isMinePage){ | 75 | if(this.isMinePage){ |
| 72 | this.pageHideTime = DateTimeUtils.getTimeStamp() | 76 | this.pageHideTime = DateTimeUtils.getTimeStamp() |
| 73 | let duration = 0 | 77 | let duration = 0 |
| @@ -83,10 +87,9 @@ export struct MinePageComponent { | @@ -83,10 +87,9 @@ export struct MinePageComponent { | ||
| 83 | aboutToAppear(){ | 87 | aboutToAppear(){ |
| 84 | this.pageFirstCreateTime = DateTimeUtils.getTimeStamp() | 88 | this.pageFirstCreateTime = DateTimeUtils.getTimeStamp() |
| 85 | 89 | ||
| 86 | - this.getUserLogin() | ||
| 87 | this.getFunctionData() | 90 | this.getFunctionData() |
| 91 | + this.getUserLogin() | ||
| 88 | this.addLoginStatusObserver() | 92 | this.addLoginStatusObserver() |
| 89 | - this.getMessageData() | ||
| 90 | } | 93 | } |
| 91 | 94 | ||
| 92 | getMessageData(){ | 95 | getMessageData(){ |
| @@ -177,6 +180,7 @@ export struct MinePageComponent { | @@ -177,6 +180,7 @@ export struct MinePageComponent { | ||
| 177 | let userid = await SPHelper.default.get(SpConstants.USER_ID,"") | 180 | let userid = await SPHelper.default.get(SpConstants.USER_ID,"") |
| 178 | if(StringUtils.isNotEmpty(userid)){ | 181 | if(StringUtils.isNotEmpty(userid)){ |
| 179 | this.isLogin = true | 182 | this.isLogin = true |
| 183 | + this.getMessageData() | ||
| 180 | }else{ | 184 | }else{ |
| 181 | this.isLogin = false | 185 | this.isLogin = false |
| 182 | } | 186 | } |
| @@ -28,7 +28,7 @@ struct PeopleShipHomePage { | @@ -28,7 +28,7 @@ struct PeopleShipHomePage { | ||
| 28 | // 总滑动空间 | 28 | // 总滑动空间 |
| 29 | scroller: Scroller = new Scroller() | 29 | scroller: Scroller = new Scroller() |
| 30 | // 顶部透明度 | 30 | // 顶部透明度 |
| 31 | - @State topOpacity: number = 0 | 31 | + @Watch('topOpacityChange') @State topOpacity: number = 0 |
| 32 | //发布数量 | 32 | //发布数量 |
| 33 | @State publishCount: number = 0 | 33 | @State publishCount: number = 0 |
| 34 | // 是否关注 | 34 | // 是否关注 |
| @@ -42,6 +42,22 @@ struct PeopleShipHomePage { | @@ -42,6 +42,22 @@ struct PeopleShipHomePage { | ||
| 42 | @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 | 42 | @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 |
| 43 | @State isConnectNetwork : boolean = NetworkUtil.isNetConnected() | 43 | @State isConnectNetwork : boolean = NetworkUtil.isNetConnected() |
| 44 | 44 | ||
| 45 | + onPageShow(): void { | ||
| 46 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff'}) | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + onPageHide(): void { | ||
| 50 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', }) | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + topOpacityChange(){ | ||
| 54 | + if(this.topOpacity > 0.8){ | ||
| 55 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', }) | ||
| 56 | + }else{ | ||
| 57 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff'}) | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | + | ||
| 45 | build() { | 61 | build() { |
| 46 | if(this.isConnectNetwork){ | 62 | if(this.isConnectNetwork){ |
| 47 | Stack({ alignContent: Alignment.TopStart }) { | 63 | Stack({ alignContent: Alignment.TopStart }) { |
| @@ -50,7 +66,8 @@ struct PeopleShipHomePage { | @@ -50,7 +66,8 @@ struct PeopleShipHomePage { | ||
| 50 | Image($r('app.media.home_page_bg')) | 66 | Image($r('app.media.home_page_bg')) |
| 51 | .width('100%') | 67 | .width('100%') |
| 52 | .height('120vp') | 68 | .height('120vp') |
| 53 | - .objectFit(ImageFit.Fill) | 69 | + .objectFit(ImageFit.Auto) |
| 70 | + .objectRepeat(ImageRepeat.NoRepeat) | ||
| 54 | .backgroundColor(Color.White) | 71 | .backgroundColor(Color.White) |
| 55 | .visibility(this.isLoading ? Visibility.None : Visibility.Visible) | 72 | .visibility(this.isLoading ? Visibility.None : Visibility.Visible) |
| 56 | .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) | 73 | .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) |
| @@ -46,8 +46,6 @@ export struct TopNavigationComponentNew { | @@ -46,8 +46,6 @@ export struct TopNavigationComponentNew { | ||
| 46 | // 顶导数据 | 46 | // 顶导数据 |
| 47 | @State @Watch('onTopNavigationDataUpdated') topNavList: TopNavDTO[] = [] | 47 | @State @Watch('onTopNavigationDataUpdated') topNavList: TopNavDTO[] = [] |
| 48 | @State indexSettingChannelId: number = AppStorage.get<number>('indexSettingChannelId') || 2002 | 48 | @State indexSettingChannelId: number = AppStorage.get<number>('indexSettingChannelId') || 2002 |
| 49 | - //我的频道id列表 | ||
| 50 | - @State channelIds: number[] = [] | ||
| 51 | //本地缓存频道id列表 | 49 | //本地缓存频道id列表 |
| 52 | @State storageChannelIds: string = AppStorage.get<string>('channelIds') || '' | 50 | @State storageChannelIds: string = AppStorage.get<string>('channelIds') || '' |
| 53 | @State homeChannelList: TopNavDTO[] = [] | 51 | @State homeChannelList: TopNavDTO[] = [] |
| @@ -192,7 +190,7 @@ export struct TopNavigationComponentNew { | @@ -192,7 +190,7 @@ export struct TopNavigationComponentNew { | ||
| 192 | myChannelList: $myChannelList, | 190 | myChannelList: $myChannelList, |
| 193 | moreChannelList: $moreChannelList, | 191 | moreChannelList: $moreChannelList, |
| 194 | localChannelList: $localChannelList, | 192 | localChannelList: $localChannelList, |
| 195 | - channelIds: $channelIds, | 193 | + // channelIds: $channelIds, |
| 196 | changeTab: (index) => { | 194 | changeTab: (index) => { |
| 197 | this.changePage(index) | 195 | this.changePage(index) |
| 198 | } | 196 | } |
| @@ -260,7 +258,7 @@ export struct TopNavigationComponentNew { | @@ -260,7 +258,7 @@ export struct TopNavigationComponentNew { | ||
| 260 | .edgeEffect(EdgeEffect.None) | 258 | .edgeEffect(EdgeEffect.None) |
| 261 | .height($r('app.float.top_tab_bar_height_common')) | 259 | .height($r('app.float.top_tab_bar_height_common')) |
| 262 | .backgroundColor(this.barBackgroundColor) | 260 | .backgroundColor(this.barBackgroundColor) |
| 263 | - .margin({top:10}) | 261 | + .margin({ top: 10 }) |
| 264 | .onAreaChange((oldValue: Area, newValue: Area) => { | 262 | .onAreaChange((oldValue: Area, newValue: Area) => { |
| 265 | let width = Number.parseFloat(newValue.width.toString()) | 263 | let width = Number.parseFloat(newValue.width.toString()) |
| 266 | this.tabsWidth = Number.isNaN(width) ? 0 : width | 264 | this.tabsWidth = Number.isNaN(width) ? 0 : width |
| @@ -342,8 +340,6 @@ export struct TopNavigationComponentNew { | @@ -342,8 +340,6 @@ export struct TopNavigationComponentNew { | ||
| 342 | //处理新闻tab顶导频道数据 | 340 | //处理新闻tab顶导频道数据 |
| 343 | topNavListHandle() { | 341 | topNavListHandle() { |
| 344 | let cityName = SPHelper.default.getSync(SpConstants.LOCATION_CITY_NAME, '') as string | 342 | let cityName = SPHelper.default.getSync(SpConstants.LOCATION_CITY_NAME, '') as string |
| 345 | - | ||
| 346 | - let _channelIds: number [] = [] | ||
| 347 | let _myChannelList: TopNavDTO [] = [] | 343 | let _myChannelList: TopNavDTO [] = [] |
| 348 | let _storageChannelIds: string [] = [] //list1 | 344 | let _storageChannelIds: string [] = [] //list1 |
| 349 | let defaultMyChannelList: TopNavDTO[] = [] | 345 | let defaultMyChannelList: TopNavDTO[] = [] |
| @@ -379,11 +375,7 @@ export struct TopNavigationComponentNew { | @@ -379,11 +375,7 @@ export struct TopNavigationComponentNew { | ||
| 379 | } | 375 | } |
| 380 | }) | 376 | }) |
| 381 | defaultList.unshift(...defaultMyChannelList) | 377 | defaultList.unshift(...defaultMyChannelList) |
| 382 | - | ||
| 383 | defaultList.forEach((item, index) => { | 378 | defaultList.forEach((item, index) => { |
| 384 | - if (this.storageChannelIds && _storageChannelIds.includes(String(item.channelId))) { | ||
| 385 | - item.myChannel = '1' | ||
| 386 | - } | ||
| 387 | if (item.channelType === 2) { | 379 | if (item.channelType === 2) { |
| 388 | if (cityName.includes(item.name)) { | 380 | if (cityName.includes(item.name)) { |
| 389 | item.myChannel = '1' | 381 | item.myChannel = '1' |
| @@ -399,32 +391,34 @@ export struct TopNavigationComponentNew { | @@ -399,32 +391,34 @@ export struct TopNavigationComponentNew { | ||
| 399 | item.moreChannel = '1' | 391 | item.moreChannel = '1' |
| 400 | } | 392 | } |
| 401 | } | 393 | } |
| 402 | - | 394 | + if (this.storageChannelIds && _storageChannelIds.includes(String(item.channelId))) { |
| 395 | + item.myChannel = '1' | ||
| 396 | + } | ||
| 403 | //频道分类 | 397 | //频道分类 |
| 404 | if (item.name !== '播报') { //暂时隐藏播报 | 398 | if (item.name !== '播报') { //暂时隐藏播报 |
| 405 | - if (item.myChannel === '1' && !this.storageChannelIds) { | 399 | + if (item.myChannel === '1') { |
| 406 | _myChannelList.push(item) | 400 | _myChannelList.push(item) |
| 407 | - _channelIds.push(item.channelId) | ||
| 408 | } | 401 | } |
| 409 | - if (item.moreChannel === '1') { | 402 | + if (item.moreChannel === '1' && item.myChannel !== '1') { |
| 410 | this.moreChannelList.push(item) | 403 | this.moreChannelList.push(item) |
| 411 | } | 404 | } |
| 412 | if (item.localChannel === '1' && item.myChannel !== '1') { | 405 | if (item.localChannel === '1' && item.myChannel !== '1') { |
| 413 | this.localChannelList.push(item) | 406 | this.localChannelList.push(item) |
| 414 | } | 407 | } |
| 415 | } | 408 | } |
| 416 | - | ||
| 417 | }) | 409 | }) |
| 418 | 410 | ||
| 419 | - if(this.storageChannelIds){ | ||
| 420 | - _storageChannelIds.forEach((_item:string)=>{ | ||
| 421 | - let index = defaultList.findIndex(ele => Number(_item) === ele.channelId) | ||
| 422 | - if(index > -1){ | ||
| 423 | - _myChannelList.push(defaultList[index]) | ||
| 424 | - _channelIds.push(defaultList[index].channelId) | ||
| 425 | - } | ||
| 426 | - }) | 411 | + //根据缓存数组排序 |
| 412 | + if (this.storageChannelIds) { | ||
| 413 | + let sortedyChannelList = _myChannelList.sort((item1, item2) => { | ||
| 414 | + let index1 = this.storageChannelIds.indexOf(String(item1.channelId)); | ||
| 415 | + let index2 = this.storageChannelIds.indexOf(String(item2.channelId)); | ||
| 416 | + return index1 - index2; | ||
| 417 | + }); | ||
| 418 | + _myChannelList = sortedyChannelList | ||
| 427 | } | 419 | } |
| 420 | + | ||
| 421 | + | ||
| 428 | if (cityName) { | 422 | if (cityName) { |
| 429 | let index = _myChannelList.findIndex(ele => cityName.includes(ele.name)) | 423 | let index = _myChannelList.findIndex(ele => cityName.includes(ele.name)) |
| 430 | const localChannelitem = _myChannelList.splice(index, 1)[0]; | 424 | const localChannelitem = _myChannelList.splice(index, 1)[0]; |
| @@ -432,7 +426,6 @@ export struct TopNavigationComponentNew { | @@ -432,7 +426,6 @@ export struct TopNavigationComponentNew { | ||
| 432 | _myChannelList.splice(3, 0, localChannelitem); | 426 | _myChannelList.splice(3, 0, localChannelitem); |
| 433 | } | 427 | } |
| 434 | 428 | ||
| 435 | - this.channelIds = _channelIds | ||
| 436 | this.myChannelList = _myChannelList | 429 | this.myChannelList = _myChannelList |
| 437 | 430 | ||
| 438 | //缓存首页频道 | 431 | //缓存首页频道 |
| @@ -620,22 +613,22 @@ export struct TopNavigationComponentNew { | @@ -620,22 +613,22 @@ export struct TopNavigationComponentNew { | ||
| 620 | }) | 613 | }) |
| 621 | } | 614 | } |
| 622 | 615 | ||
| 623 | - clickMorningEveningPaper(){ | 616 | + clickMorningEveningPaper() { |
| 624 | if (NetworkUtil.isNetConnected()) { | 617 | if (NetworkUtil.isNetConnected()) { |
| 625 | - DailyPaperTopicModel.getDailyPaperTopic().then(dailyPaperTopicBean =>{ | 618 | + DailyPaperTopicModel.getDailyPaperTopic().then(dailyPaperTopicBean => { |
| 626 | if (dailyPaperTopicBean && dailyPaperTopicBean.id > 0) { | 619 | if (dailyPaperTopicBean && dailyPaperTopicBean.id > 0) { |
| 627 | SPHelper.default.saveSync('dailyPaperTopicPageId', dailyPaperTopicBean.id); | 620 | SPHelper.default.saveSync('dailyPaperTopicPageId', dailyPaperTopicBean.id); |
| 628 | ProcessUtils.gotoMorningEveningPaper() | 621 | ProcessUtils.gotoMorningEveningPaper() |
| 629 | - TrackingButton.click('morning_evening_news_click',TrackConstants.SummaryType.MorningAndEveningNews,TrackConstants.SummaryType.MorningAndEveningNews) | ||
| 630 | - }else { | 622 | + TrackingButton.click('morning_evening_news_click', TrackConstants.SummaryType.MorningAndEveningNews, |
| 623 | + TrackConstants.SummaryType.MorningAndEveningNews) | ||
| 624 | + } else { | ||
| 631 | ToastUtils.showToast('暂无早晚报信息', 1000) | 625 | ToastUtils.showToast('暂无早晚报信息', 1000) |
| 632 | } | 626 | } |
| 633 | - }).catch((err:string) =>{ | 627 | + }).catch((err: string) => { |
| 634 | ToastUtils.showToast('暂无早晚报信息', 1000) | 628 | ToastUtils.showToast('暂无早晚报信息', 1000) |
| 635 | }) | 629 | }) |
| 636 | } else { | 630 | } else { |
| 637 | ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000) | 631 | ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000) |
| 638 | } | 632 | } |
| 639 | } | 633 | } |
| 640 | - | ||
| 641 | } | 634 | } |
| @@ -40,7 +40,9 @@ export struct PeopleShipHomePageTopComponent { | @@ -40,7 +40,9 @@ export struct PeopleShipHomePageTopComponent { | ||
| 40 | Image($r('app.media.home_page_bg')) | 40 | Image($r('app.media.home_page_bg')) |
| 41 | .width('100%') | 41 | .width('100%') |
| 42 | .height('48vp') | 42 | .height('48vp') |
| 43 | - .objectFit(ImageFit.Fill) | 43 | + .objectFit(ImageFit.Auto) |
| 44 | + .objectRepeat(ImageRepeat.NoRepeat) | ||
| 45 | + .objectFit(ImageFit.Auto) | ||
| 44 | .backgroundColor(Color.White) | 46 | .backgroundColor(Color.White) |
| 45 | // 头像和名称 | 47 | // 头像和名称 |
| 46 | Row() { | 48 | Row() { |
| @@ -466,7 +466,8 @@ export struct SearchResultContentComponent { | @@ -466,7 +466,8 @@ export struct SearchResultContentComponent { | ||
| 466 | rmhDesc: obj.introduction, | 466 | rmhDesc: obj.introduction, |
| 467 | userId: obj.userId, | 467 | userId: obj.userId, |
| 468 | userType: obj.userType, | 468 | userType: obj.userType, |
| 469 | - honoraryIcon:'' | 469 | + honoraryIcon:'', |
| 470 | + rmhPlatform:0 | ||
| 470 | } | 471 | } |
| 471 | if(rem.length>0){ | 472 | if(rem.length>0){ |
| 472 | rem.forEach(item=>{ | 473 | rem.forEach(item=>{ |
| @@ -491,7 +492,8 @@ export struct SearchResultContentComponent { | @@ -491,7 +492,8 @@ export struct SearchResultContentComponent { | ||
| 491 | rmhDesc: item.introduction, | 492 | rmhDesc: item.introduction, |
| 492 | userId: item.userId, | 493 | userId: item.userId, |
| 493 | userType: item.userType, | 494 | userType: item.userType, |
| 494 | - honoraryIcon:'' | 495 | + honoraryIcon:'', |
| 496 | + rmhPlatform:0 | ||
| 495 | } | 497 | } |
| 496 | } | 498 | } |
| 497 | }) | 499 | }) |
| @@ -883,7 +883,8 @@ class MinePageDatasModel{ | @@ -883,7 +883,8 @@ class MinePageDatasModel{ | ||
| 883 | rmhDesc: obj.introduction, | 883 | rmhDesc: obj.introduction, |
| 884 | userId: obj.userId, | 884 | userId: obj.userId, |
| 885 | userType: obj.userType, | 885 | userType: obj.userType, |
| 886 | - honoraryIcon:'' | 886 | + honoraryIcon:'', |
| 887 | + rmhPlatform:0 | ||
| 887 | } | 888 | } |
| 888 | if(rem.length>0){ | 889 | if(rem.length>0){ |
| 889 | rem.forEach(item=>{ | 890 | rem.forEach(item=>{ |
| @@ -908,7 +909,8 @@ class MinePageDatasModel{ | @@ -908,7 +909,8 @@ class MinePageDatasModel{ | ||
| 908 | rmhDesc: item.introduction, | 909 | rmhDesc: item.introduction, |
| 909 | userId: item.userId, | 910 | userId: item.userId, |
| 910 | userType: item.userType, | 911 | userType: item.userType, |
| 911 | - honoraryIcon:'' | 912 | + honoraryIcon:'', |
| 913 | + rmhPlatform:0 | ||
| 912 | } | 914 | } |
| 913 | } | 915 | } |
| 914 | }) | 916 | }) |
| @@ -17,6 +17,14 @@ | @@ -17,6 +17,14 @@ | ||
| 17 | "value": "13fp" | 17 | "value": "13fp" |
| 18 | }, | 18 | }, |
| 19 | { | 19 | { |
| 20 | + "name": "font_size_13_2", | ||
| 21 | + "value": "13.2fp" | ||
| 22 | + }, | ||
| 23 | + { | ||
| 24 | + "name": "font_size_13_5", | ||
| 25 | + "value": "13.5fp" | ||
| 26 | + }, | ||
| 27 | + { | ||
| 20 | "name": "font_size_14", | 28 | "name": "font_size_14", |
| 21 | "value": "14fp" | 29 | "value": "14fp" |
| 22 | }, | 30 | }, |
| 1 | import { Logger, ResourcesUtils, EmitterUtils, EmitterEventId } from 'wdKit'; | 1 | import { Logger, ResourcesUtils, EmitterUtils, EmitterEventId } from 'wdKit'; |
| 2 | import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork'; | 2 | import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork'; |
| 3 | -import { ContentDetailDTO, InteractDataDTO } from 'wdBean'; | 3 | +import { ContentDetailDTO, GetPullAddressBean, InteractDataDTO } from 'wdBean'; |
| 4 | import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest'; | 4 | import { HttpRequest } from 'wdNetwork/src/main/ets/http/HttpRequest'; |
| 5 | 5 | ||
| 6 | const TAG = 'ContentDetailRequest'; | 6 | const TAG = 'ContentDetailRequest'; |
| @@ -208,6 +208,19 @@ export class ContentDetailRequest { | @@ -208,6 +208,19 @@ export class ContentDetailRequest { | ||
| 208 | return url; | 208 | return url; |
| 209 | } | 209 | } |
| 210 | 210 | ||
| 211 | + | ||
| 212 | + static getLiveRoomPullStreamUrl(vliveId:string){ | ||
| 213 | + let url = HttpUrlUtils.getHost() + HttpUrlUtils.PULL_STREAM_PATH | ||
| 214 | + url = url + vliveId | ||
| 215 | + return url; | ||
| 216 | + } | ||
| 217 | + | ||
| 218 | + static getLiveRoomPullStream(vliveId: string): Promise<ResponseDTO<GetPullAddressBean>> { | ||
| 219 | + let url = ContentDetailRequest.getLiveRoomPullStreamUrl(vliveId) | ||
| 220 | + return WDHttp.get<ResponseDTO<GetPullAddressBean>>(url) | ||
| 221 | + } | ||
| 222 | + | ||
| 223 | + | ||
| 211 | static getContentDetail(params: ContentDetailRequestParams): Promise<ResponseDTO<ContentDetailDTO[]>> { | 224 | static getContentDetail(params: ContentDetailRequestParams): Promise<ResponseDTO<ContentDetailDTO[]>> { |
| 212 | if (mock_switch) { | 225 | if (mock_switch) { |
| 213 | return ContentDetailRequest.getContentDetailDataMock(getContext()); | 226 | return ContentDetailRequest.getContentDetailDataMock(getContext()); |
| @@ -216,6 +229,8 @@ export class ContentDetailRequest { | @@ -216,6 +229,8 @@ export class ContentDetailRequest { | ||
| 216 | return WDHttp.get<ResponseDTO<ContentDetailDTO[]>>(url) | 229 | return WDHttp.get<ResponseDTO<ContentDetailDTO[]>>(url) |
| 217 | } | 230 | } |
| 218 | 231 | ||
| 232 | + | ||
| 233 | + | ||
| 219 | /** | 234 | /** |
| 220 | * 查询沉浸式视频频道推荐楼层数据 | 235 | * 查询沉浸式视频频道推荐楼层数据 |
| 221 | * @returns | 236 | * @returns |
| 1 | -import { Action, ContentDetailDTO } from 'wdBean/Index'; | 1 | +import { Action, ContentDetailDTO, GetPullAddressBean } from 'wdBean/Index'; |
| 2 | import { LiveViewModel } from '../viewModel/LiveViewModel'; | 2 | import { LiveViewModel } from '../viewModel/LiveViewModel'; |
| 3 | import router from '@ohos.router'; | 3 | import router from '@ohos.router'; |
| 4 | 4 | ||
| @@ -71,7 +71,6 @@ export struct DetailPlayLiveCommon { | @@ -71,7 +71,6 @@ export struct DetailPlayLiveCommon { | ||
| 71 | .then((data: Array<ContentDetailDTO>) => { | 71 | .then((data: Array<ContentDetailDTO>) => { |
| 72 | console.log(TAG, '查询视频详情用于评论展示 getContentDetail:', JSON.stringify(data)) | 72 | console.log(TAG, '查询视频详情用于评论展示 getContentDetail:', JSON.stringify(data)) |
| 73 | if (data) { | 73 | if (data) { |
| 74 | - | ||
| 75 | let detailData = data[0] | 74 | let detailData = data[0] |
| 76 | this.liveLandscape = | 75 | this.liveLandscape = |
| 77 | detailData?.liveInfo?.liveLandScape //String(this.contentDetailData?.liveInfo?.liveLandScape || '') | 76 | detailData?.liveInfo?.liveLandScape //String(this.contentDetailData?.liveInfo?.liveLandScape || '') |
| @@ -79,14 +78,7 @@ export struct DetailPlayLiveCommon { | @@ -79,14 +78,7 @@ export struct DetailPlayLiveCommon { | ||
| 79 | this.liveState = detailData.liveInfo?.liveState | 78 | this.liveState = detailData.liveInfo?.liveState |
| 80 | 79 | ||
| 81 | 80 | ||
| 82 | - if (this.liveState === 'wait' || this.liveLandscape === 'news') { | ||
| 83 | - this.contentDetailData = data[0] | ||
| 84 | - } else if (this.liveLandscape === 'general') { | ||
| 85 | - //todo 不加setTimeOut ,接口返回的数据 就没法让PlayerComponent #@Consume @Watch('updateData') liveDetailsBean 的updateData方法运行 | ||
| 86 | - setTimeout(() => { | ||
| 87 | this.contentDetailData = data[0] | 81 | this.contentDetailData = data[0] |
| 88 | - }, 10) | ||
| 89 | - } | ||
| 90 | 82 | ||
| 91 | console.log(TAG, '查询视频详情用于评论展示 openComment:', detailData.openComment) | 83 | console.log(TAG, '查询视频详情用于评论展示 openComment:', detailData.openComment) |
| 92 | this.publishCommentModel.targetId = String(detailData?.newsId || '') | 84 | this.publishCommentModel.targetId = String(detailData?.newsId || '') |
| @@ -107,7 +99,20 @@ export struct DetailPlayLiveCommon { | @@ -107,7 +99,20 @@ export struct DetailPlayLiveCommon { | ||
| 107 | if (detailData.liveInfo.liveState == 'end') { | 99 | if (detailData.liveInfo.liveState == 'end') { |
| 108 | this.playUrl = detailData.liveInfo.vlive[0].replayUri | 100 | this.playUrl = detailData.liveInfo.vlive[0].replayUri |
| 109 | } | 101 | } |
| 110 | - //console.error('XXXXZZZZ', "liveLandscape =" + this.liveLandscape + ' this.liveState =' + this.liveState) | 102 | + |
| 103 | + //人民号类型单独获取直播地址 | ||
| 104 | + if (detailData.rmhPlatform === 1) { | ||
| 105 | + | ||
| 106 | + let vliveId = detailData.liveInfo.vlive[0].vliveId as string | ||
| 107 | + console.error(TAG, 'vliveId==' + vliveId) | ||
| 108 | + this.liveViewModel.getLiveRoomPullAddress(vliveId) | ||
| 109 | + .then((data: GetPullAddressBean) => { | ||
| 110 | + console.log(TAG, ' GetPullAddressBean:', JSON.stringify(data)) | ||
| 111 | + | ||
| 112 | + }) | ||
| 113 | + | ||
| 114 | + } | ||
| 115 | + | ||
| 111 | } | 116 | } |
| 112 | }) | 117 | }) |
| 113 | } | 118 | } |
| @@ -84,6 +84,7 @@ export struct DetailPlayLivePage { | @@ -84,6 +84,7 @@ export struct DetailPlayLivePage { | ||
| 84 | } | 84 | } |
| 85 | }).visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) | 85 | }).visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) |
| 86 | 86 | ||
| 87 | + | ||
| 87 | // LiveCommentComponent({ heartNum: this.liveRoomDataBean.likeNum }) | 88 | // LiveCommentComponent({ heartNum: this.liveRoomDataBean.likeNum }) |
| 88 | // .visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) | 89 | // .visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None) |
| 89 | } | 90 | } |
| 1 | -import { ContentDetailDTO, LiveDetailsBean, LiveRoomBean, LiveRoomDataBean, ValueType } from 'wdBean/Index' | 1 | +import { ContentDetailDTO, |
| 2 | + GetPullAddressBean, | ||
| 3 | + LiveDetailsBean, LiveRoomBean, LiveRoomDataBean, ValueType } from 'wdBean/Index' | ||
| 4 | +import { ContentDetailRequest } from 'wdDetailPlayApi/Index' | ||
| 2 | 5 | ||
| 3 | import { ResponseDTO } from 'wdNetwork/Index' | 6 | import { ResponseDTO } from 'wdNetwork/Index' |
| 4 | import { LiveModel } from './LiveModel' | 7 | import { LiveModel } from './LiveModel' |
| @@ -24,6 +27,28 @@ export class LiveViewModel { | @@ -24,6 +27,28 @@ export class LiveViewModel { | ||
| 24 | 27 | ||
| 25 | } | 28 | } |
| 26 | 29 | ||
| 30 | + getLiveRoomPullAddress(vliveId:string){ | ||
| 31 | + // return new Promise<GetPullAddressBean>((success, fail) => { | ||
| 32 | + // this.liveModel.getContentDetail(contentId, relId, relType).then((data) => { | ||
| 33 | + // success(data) | ||
| 34 | + // }).catch((message: string) => { | ||
| 35 | + // fail(message) | ||
| 36 | + // }) | ||
| 37 | + // }) | ||
| 38 | + | ||
| 39 | + return new Promise<GetPullAddressBean>((success, fail) => { | ||
| 40 | + ContentDetailRequest.getLiveRoomPullStream(vliveId).then(async (resDTO: ResponseDTO<GetPullAddressBean>) => { | ||
| 41 | + console.log(TAG, 'getContentDetail:', JSON.stringify(resDTO.data)) | ||
| 42 | + if (resDTO.data) { | ||
| 43 | + success(resDTO.data) | ||
| 44 | + } | ||
| 45 | + }).catch(() => { | ||
| 46 | + fail("数据为空") | ||
| 47 | + }) | ||
| 48 | + | ||
| 49 | + }) | ||
| 50 | + | ||
| 51 | + } | ||
| 27 | 52 | ||
| 28 | //直播详情 | 53 | //直播详情 |
| 29 | getLiveDetails(contentId: string, relId: string, relType: string) { | 54 | getLiveDetails(contentId: string, relId: string, relType: string) { |
| @@ -12,6 +12,10 @@ import { publishCommentModel } from 'wdComponent/src/main/ets/components/comment | @@ -12,6 +12,10 @@ import { publishCommentModel } from 'wdComponent/src/main/ets/components/comment | ||
| 12 | 12 | ||
| 13 | const TAG: string = 'TabChatComponent'; | 13 | const TAG: string = 'TabChatComponent'; |
| 14 | 14 | ||
| 15 | +/** | ||
| 16 | + * | ||
| 17 | + * 非沉浸式---大家聊 | ||
| 18 | + */ | ||
| 15 | @Component | 19 | @Component |
| 16 | export struct TabChatComponent { | 20 | export struct TabChatComponent { |
| 17 | @State private pageModel: PageModel = new PageModel() | 21 | @State private pageModel: PageModel = new PageModel() |
| @@ -13,11 +13,9 @@ export struct TabComponent { | @@ -13,11 +13,9 @@ export struct TabComponent { | ||
| 13 | @State currentIndex: number = 0 | 13 | @State currentIndex: number = 0 |
| 14 | private controller: TabsController = new TabsController() | 14 | private controller: TabsController = new TabsController() |
| 15 | @Prop tabs: string[] = [] | 15 | @Prop tabs: string[] = [] |
| 16 | - | ||
| 17 | aboutToAppear(): void { | 16 | aboutToAppear(): void { |
| 18 | 17 | ||
| 19 | } | 18 | } |
| 20 | - | ||
| 21 | /** | 19 | /** |
| 22 | * 评论切换到大家聊 | 20 | * 评论切换到大家聊 |
| 23 | */ | 21 | */ |
| 1 | import { ContentDetailDTO, LiveDetailsBean } from 'wdBean/Index' | 1 | import { ContentDetailDTO, LiveDetailsBean } from 'wdBean/Index' |
| 2 | import { LiveCountdownComponent } from './LiveCountdownComponent' | 2 | import { LiveCountdownComponent } from './LiveCountdownComponent' |
| 3 | 3 | ||
| 4 | +/** | ||
| 5 | + * 非沉浸式---简介 | ||
| 6 | + */ | ||
| 4 | @Component | 7 | @Component |
| 5 | export struct TabInfoComponent { | 8 | export struct TabInfoComponent { |
| 6 | @Consume contentDetailData: ContentDetailDTO | 9 | @Consume contentDetailData: ContentDetailDTO |
| 1 | -import { ContentDetailDTO, LiveDetailsBean, LiveRoomItemBean } from 'wdBean/Index' | ||
| 2 | -import { EmptyComponent, ErrorComponent, ListHasNoMoreDataUI, WDViewDefaultType } from 'wdComponent/Index' | 1 | +import { ContentDetailDTO, LiveRoomItemBean } from 'wdBean/Index' |
| 2 | +import { CustomPullToRefresh, EmptyComponent, ErrorComponent, WDViewDefaultType } from 'wdComponent/Index' | ||
| 3 | import { TabLiveItemComponent } from './TabLiveItemComponent' | 3 | import { TabLiveItemComponent } from './TabLiveItemComponent' |
| 4 | import CustomRefreshLoadLayout from 'wdComponent/src/main/ets/components/page/CustomRefreshLoadLayout' | 4 | import CustomRefreshLoadLayout from 'wdComponent/src/main/ets/components/page/CustomRefreshLoadLayout' |
| 5 | import { RefreshLayoutBean } from 'wdComponent/src/main/ets/components/page/RefreshLayoutBean' | 5 | import { RefreshLayoutBean } from 'wdComponent/src/main/ets/components/page/RefreshLayoutBean' |
| 6 | import PageModel from 'wdComponent/src/main/ets/viewmodel/PageModel' | 6 | import PageModel from 'wdComponent/src/main/ets/viewmodel/PageModel' |
| 7 | import { ViewType } from 'wdConstant/Index' | 7 | import { ViewType } from 'wdConstant/Index' |
| 8 | -import RefreshLayout from 'wdComponent/src/main/ets/components/page/RefreshLayout' | ||
| 9 | -import { StringUtils } from 'wdKit/Index' | 8 | +import { LazyDataSource, StringUtils } from 'wdKit/Index' |
| 10 | import { LiveViewModel } from '../../viewModel/LiveViewModel' | 9 | import { LiveViewModel } from '../../viewModel/LiveViewModel' |
| 11 | import { Logger } from 'wdKit' | 10 | import { Logger } from 'wdKit' |
| 11 | +import LoadMoreLayout from 'wdComponent/src/main/ets/components/page/LoadMoreLayout' | ||
| 12 | +import { PeopleShipNoMoreData } from 'wdComponent/src/main/ets/components/reusable/PeopleShipNoMoreData' | ||
| 12 | 13 | ||
| 13 | const TAG: string = 'TabLiveComponent'; | 14 | const TAG: string = 'TabLiveComponent'; |
| 14 | 15 | ||
| @@ -18,9 +19,10 @@ const TAG: string = 'TabLiveComponent'; | @@ -18,9 +19,10 @@ const TAG: string = 'TabLiveComponent'; | ||
| 18 | @Component | 19 | @Component |
| 19 | export struct TabLiveComponent { | 20 | export struct TabLiveComponent { |
| 20 | liveViewModel: LiveViewModel = new LiveViewModel() | 21 | liveViewModel: LiveViewModel = new LiveViewModel() |
| 21 | - @State liveList: Array<LiveRoomItemBean> = [] | 22 | + @State liveList: LazyDataSource<LiveRoomItemBean> = new LazyDataSource(); |
| 22 | @Consume @Watch('updateData') contentDetailData: ContentDetailDTO | 23 | @Consume @Watch('updateData') contentDetailData: ContentDetailDTO |
| 23 | @State private pageModel: PageModel = new PageModel() | 24 | @State private pageModel: PageModel = new PageModel() |
| 25 | + private scroller: Scroller = new Scroller() | ||
| 24 | 26 | ||
| 25 | aboutToAppear(): void { | 27 | aboutToAppear(): void { |
| 26 | this.getLiveList() | 28 | this.getLiveList() |
| @@ -35,7 +37,19 @@ export struct TabLiveComponent { | @@ -35,7 +37,19 @@ export struct TabLiveComponent { | ||
| 35 | } else if (this.pageModel.viewType == ViewType.EMPTY) { | 37 | } else if (this.pageModel.viewType == ViewType.EMPTY) { |
| 36 | EmptyComponent({ emptyType: WDViewDefaultType.WDViewDefaultType_NoContent1 }) | 38 | EmptyComponent({ emptyType: WDViewDefaultType.WDViewDefaultType_NoContent1 }) |
| 37 | } else { | 39 | } else { |
| 40 | + CustomPullToRefresh({ | ||
| 41 | + alldata: this.liveList, | ||
| 42 | + scroller: this.scroller, | ||
| 43 | + hasMore: false, | ||
| 44 | + customList: () => { | ||
| 38 | this.ListLayout() | 45 | this.ListLayout() |
| 46 | + }, | ||
| 47 | + onRefresh: (resolve) => { | ||
| 48 | + this.pageModel.currentPage = 1 | ||
| 49 | + this.getLiveList(resolve) | ||
| 50 | + }, | ||
| 51 | + }) | ||
| 52 | + | ||
| 39 | } | 53 | } |
| 40 | } | 54 | } |
| 41 | .alignContent(Alignment.Top) | 55 | .alignContent(Alignment.Top) |
| @@ -46,32 +60,35 @@ export struct TabLiveComponent { | @@ -46,32 +60,35 @@ export struct TabLiveComponent { | ||
| 46 | 60 | ||
| 47 | @Builder | 61 | @Builder |
| 48 | ListLayout() { | 62 | ListLayout() { |
| 49 | - List() { | ||
| 50 | - ListItem() { | ||
| 51 | - // 下拉刷新 TODO 待对接新的下拉刷新组件 | ||
| 52 | - // RefreshLayout({ | ||
| 53 | - // refreshBean: new RefreshLayoutBean(this.pageModel.isVisiblePullDown, this.pageModel.pullDownRefreshImage, | ||
| 54 | - // this.pageModel.pullDownRefreshText, this.pageModel.pullDownRefreshHeight) | ||
| 55 | - // }) | ||
| 56 | - } | ||
| 57 | 63 | ||
| 58 | - ForEach(this.liveList, (item: LiveRoomItemBean) => { | 64 | + List({ scroller: this.scroller }) { |
| 65 | + // 下拉刷新 | ||
| 66 | + LazyForEach(this.liveList, (item: LiveRoomItemBean, index: number) => { | ||
| 59 | ListItem() { | 67 | ListItem() { |
| 60 | TabLiveItemComponent({ item: item }) | 68 | TabLiveItemComponent({ item: item }) |
| 61 | } | 69 | } |
| 62 | - }) | 70 | + }, |
| 71 | + (item: LiveRoomItemBean, contentIndex: number) => JSON.stringify(item) | ||
| 72 | + ) | ||
| 63 | // 加载更多 | 73 | // 加载更多 |
| 64 | ListItem() { | 74 | ListItem() { |
| 65 | - if (this.pageModel.hasMore) { | ||
| 66 | - // LoadMoreLayout({ | ||
| 67 | - // refreshBean: new RefreshLayoutBean(this.pageModel.isVisiblePullUpLoad, this.pageModel.pullUpLoadImage, | ||
| 68 | - // this.pageModel.pullUpLoadText, this.pageModel.pullUpLoadHeight) | ||
| 69 | - // }) | ||
| 70 | - } else { | ||
| 71 | - ListHasNoMoreDataUI() | 75 | + if (this.pageModel.hasMore && this.liveList && this.liveList.totalCount() > 0) { |
| 76 | + LoadMoreLayout({ isVisible: this.pageModel.hasMore }) | ||
| 77 | + } else if (!this.pageModel.hasMore && !this.pageModel.isLoading) { | ||
| 78 | + PeopleShipNoMoreData() | ||
| 79 | + } | ||
| 72 | } | 80 | } |
| 73 | } | 81 | } |
| 82 | + .edgeEffect(EdgeEffect.None) | ||
| 83 | + .scrollBar(BarState.Off) | ||
| 84 | + .onReachEnd(() => { | ||
| 85 | + Logger.debug(TAG, "触底了"); | ||
| 86 | + if (!this.pageModel.isLoading && this.pageModel.hasMore) { | ||
| 87 | + //加载分页数据 | ||
| 88 | + //this.currentPage++; | ||
| 89 | + this.getLiveList() | ||
| 74 | } | 90 | } |
| 91 | + }) | ||
| 75 | } | 92 | } |
| 76 | 93 | ||
| 77 | @Builder | 94 | @Builder |
| @@ -82,19 +99,35 @@ export struct TabLiveComponent { | @@ -82,19 +99,35 @@ export struct TabLiveComponent { | ||
| 82 | }) | 99 | }) |
| 83 | } | 100 | } |
| 84 | 101 | ||
| 85 | - getLiveList() { | 102 | + async getLiveList(resolve?: (value: string | PromiseLike<string>) => void) { |
| 86 | if (!this.contentDetailData || !this.contentDetailData.newsId) { | 103 | if (!this.contentDetailData || !this.contentDetailData.newsId) { |
| 87 | // 参数不够,直接拦截接口 | 104 | // 参数不够,直接拦截接口 |
| 88 | return | 105 | return |
| 89 | } | 106 | } |
| 107 | + if (this.pageModel.isLoading) { | ||
| 108 | + | ||
| 109 | + if (resolve) { | ||
| 110 | + resolve('已更新至最新') | ||
| 111 | + } | ||
| 112 | + return | ||
| 113 | + } | ||
| 114 | + this.pageModel.isLoading = true | ||
| 90 | this.pageModel.currentPage = 1 | 115 | this.pageModel.currentPage = 1 |
| 91 | this.liveViewModel.getLiveList( | 116 | this.liveViewModel.getLiveList( |
| 92 | this.pageModel.currentPage, | 117 | this.pageModel.currentPage, |
| 93 | this.contentDetailData?.liveInfo?.mlive?.mliveId, | 118 | this.contentDetailData?.liveInfo?.mlive?.mliveId, |
| 94 | - this.contentDetailData?.newsId+'', | 119 | + this.contentDetailData?.newsId + '', |
| 95 | 20) | 120 | 20) |
| 96 | .then( | 121 | .then( |
| 97 | (data) => { | 122 | (data) => { |
| 123 | + this.pageModel.isLoading = false | ||
| 124 | + if (resolve) { | ||
| 125 | + if (this.pageModel.currentPage == 1) { | ||
| 126 | + resolve('已更新至最新') | ||
| 127 | + } else { | ||
| 128 | + resolve('') | ||
| 129 | + } | ||
| 130 | + } | ||
| 98 | Logger.debug(TAG, '直播间数据:' + `${JSON.stringify(data)}`) | 131 | Logger.debug(TAG, '直播间数据:' + `${JSON.stringify(data)}`) |
| 99 | if (data.barrageResponses && data.barrageResponses.length > 0) { | 132 | if (data.barrageResponses && data.barrageResponses.length > 0) { |
| 100 | /** | 133 | /** |
| @@ -106,6 +139,10 @@ export struct TabLiveComponent { | @@ -106,6 +139,10 @@ export struct TabLiveComponent { | ||
| 106 | 3.内容:详情接口的简介,newIntroduction | 139 | 3.内容:详情接口的简介,newIntroduction |
| 107 | */ | 140 | */ |
| 108 | this.pageModel.viewType = ViewType.LOADED; | 141 | this.pageModel.viewType = ViewType.LOADED; |
| 142 | + if(this.pageModel.currentPage ===1){ | ||
| 143 | + this.liveList.clear() | ||
| 144 | + } | ||
| 145 | + | ||
| 109 | this.liveList.push(...data.barrageResponses) | 146 | this.liveList.push(...data.barrageResponses) |
| 110 | if (data.barrageResponses.length === this.pageModel.pageSize) { | 147 | if (data.barrageResponses.length === this.pageModel.pageSize) { |
| 111 | this.pageModel.currentPage++; | 148 | this.pageModel.currentPage++; |
| @@ -124,9 +161,11 @@ export struct TabLiveComponent { | @@ -124,9 +161,11 @@ export struct TabLiveComponent { | ||
| 124 | && this.contentDetailData.liveInfo.liveState != 'wait') { | 161 | && this.contentDetailData.liveInfo.liveState != 'wait') { |
| 125 | this.pageModel.viewType = ViewType.LOADED; | 162 | this.pageModel.viewType = ViewType.LOADED; |
| 126 | this.updateLiveListData() | 163 | this.updateLiveListData() |
| 164 | + this.pageModel.hasMore = false; | ||
| 127 | } else { | 165 | } else { |
| 128 | this.pageModel.viewType = ViewType.EMPTY; | 166 | this.pageModel.viewType = ViewType.EMPTY; |
| 129 | } | 167 | } |
| 168 | + | ||
| 130 | } | 169 | } |
| 131 | }, | 170 | }, |
| 132 | () => { | 171 | () => { |
| @@ -155,7 +194,7 @@ export struct TabLiveComponent { | @@ -155,7 +194,7 @@ export struct TabLiveComponent { | ||
| 155 | } | 194 | } |
| 156 | 195 | ||
| 157 | updateData() { | 196 | updateData() { |
| 158 | - if (this.liveList.length > 0) { | 197 | + if (this.liveList.totalCount() > 0) { |
| 159 | // TODO 拦截刷新?根据业务斟酌下 | 198 | // TODO 拦截刷新?根据业务斟酌下 |
| 160 | return | 199 | return |
| 161 | } | 200 | } |
| @@ -52,7 +52,6 @@ export struct TopPlayComponent { | @@ -52,7 +52,6 @@ export struct TopPlayComponent { | ||
| 52 | } else if (status === PlayerConstants.STATUS_COMPLETION) { | 52 | } else if (status === PlayerConstants.STATUS_COMPLETION) { |
| 53 | // 播放完成 | 53 | // 播放完成 |
| 54 | 54 | ||
| 55 | - | ||
| 56 | } else { | 55 | } else { |
| 57 | this.isError = false | 56 | this.isError = false |
| 58 | } | 57 | } |
| @@ -63,7 +62,6 @@ export struct TopPlayComponent { | @@ -63,7 +62,6 @@ export struct TopPlayComponent { | ||
| 63 | } | 62 | } |
| 64 | 63 | ||
| 65 | updateData() { | 64 | updateData() { |
| 66 | - | ||
| 67 | // 检测等待中的直播预告是否视频资源 | 65 | // 检测等待中的直播预告是否视频资源 |
| 68 | if (this.contentDetailData.liveInfo && this.contentDetailData.liveInfo.previewType === 1 | 66 | if (this.contentDetailData.liveInfo && this.contentDetailData.liveInfo.previewType === 1 |
| 69 | && this.contentDetailData.liveInfo.previewUrl && | 67 | && this.contentDetailData.liveInfo.previewUrl && |
| @@ -28,7 +28,10 @@ export struct PlayerComponent { | @@ -28,7 +28,10 @@ export struct PlayerComponent { | ||
| 28 | this.playerController?.pause() | 28 | this.playerController?.pause() |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | - aboutToAppear(): void { | 31 | + async aboutToAppear(): Promise<void> { |
| 32 | + setTimeout(() => { | ||
| 33 | + this.updateData() | ||
| 34 | + }, 10) | ||
| 32 | } | 35 | } |
| 33 | 36 | ||
| 34 | async aboutToDisappear(): Promise<void> { | 37 | async aboutToDisappear(): Promise<void> { |
| @@ -36,6 +39,7 @@ export struct PlayerComponent { | @@ -36,6 +39,7 @@ export struct PlayerComponent { | ||
| 36 | await this.playerController?.pause() | 39 | await this.playerController?.pause() |
| 37 | await this.playerController?.stop() | 40 | await this.playerController?.stop() |
| 38 | await this.playerController?.release() | 41 | await this.playerController?.release() |
| 42 | + | ||
| 39 | } | 43 | } |
| 40 | 44 | ||
| 41 | updateData() { | 45 | updateData() { |
| @@ -58,6 +62,7 @@ export struct PlayerComponent { | @@ -58,6 +62,7 @@ export struct PlayerComponent { | ||
| 58 | this.liveStreamType = liveStreamType | 62 | this.liveStreamType = liveStreamType |
| 59 | this.playUrl = playUrl | 63 | this.playUrl = playUrl |
| 60 | } | 64 | } |
| 65 | + console.error("XXXXZZZZ", 'updateData ----liveState==>' + this.playUrl) | ||
| 61 | } | 66 | } |
| 62 | 67 | ||
| 63 | build() { | 68 | build() { |
| @@ -69,6 +74,7 @@ export struct PlayerComponent { | @@ -69,6 +74,7 @@ export struct PlayerComponent { | ||
| 69 | playerController: this.playerController, | 74 | playerController: this.playerController, |
| 70 | onLoad: () => { | 75 | onLoad: () => { |
| 71 | this.isCanplay = true | 76 | this.isCanplay = true |
| 77 | + console.error("XXXXZZZZ", '------2------------') | ||
| 72 | this.playerController?.firstPlay(this.playUrl); | 78 | this.playerController?.firstPlay(this.playUrl); |
| 73 | } | 79 | } |
| 74 | }) | 80 | }) |
| @@ -77,7 +83,7 @@ export struct PlayerComponent { | @@ -77,7 +83,7 @@ export struct PlayerComponent { | ||
| 77 | playerController: this.playerController, | 83 | playerController: this.playerController, |
| 78 | onLoad: () => { | 84 | onLoad: () => { |
| 79 | this.isCanplay = true | 85 | this.isCanplay = true |
| 80 | - console.error('WDAliPlayerController', '------1------------') | 86 | + console.error('XXXXZZZZ', '------1------------') |
| 81 | this.playerController?.firstPlay(this.playUrl); | 87 | this.playerController?.firstPlay(this.playUrl); |
| 82 | } | 88 | } |
| 83 | }).margin({ top: 195 }).height(211) | 89 | }).margin({ top: 195 }).height(211) |
| @@ -4,6 +4,7 @@ import { SpConstants } from 'wdConstant/Index' | @@ -4,6 +4,7 @@ import { SpConstants } from 'wdConstant/Index' | ||
| 4 | import { ContentDetailRequest, postInteractAccentionOperateParams } from 'wdDetailPlayApi/Index' | 4 | import { ContentDetailRequest, postInteractAccentionOperateParams } from 'wdDetailPlayApi/Index' |
| 5 | import { NumberFormatterUtils, DateTimeUtils, SPHelper } from 'wdKit/Index' | 5 | import { NumberFormatterUtils, DateTimeUtils, SPHelper } from 'wdKit/Index' |
| 6 | import { WDRouterPage, WDRouterRule } from 'wdRouter/Index' | 6 | import { WDRouterPage, WDRouterRule } from 'wdRouter/Index' |
| 7 | +import { router } from '@kit.ArkUI' | ||
| 7 | 8 | ||
| 8 | const TAG = 'PlayerEndView' | 9 | const TAG = 'PlayerEndView' |
| 9 | 10 | ||
| @@ -15,9 +16,12 @@ export struct PlayerEndView { | @@ -15,9 +16,12 @@ export struct PlayerEndView { | ||
| 15 | @Consume liveRoomDataBean: LiveRoomDataBean | 16 | @Consume liveRoomDataBean: LiveRoomDataBean |
| 16 | @State duration: string = '' | 17 | @State duration: string = '' |
| 17 | @State followStatus: String = '0'; | 18 | @State followStatus: String = '0'; |
| 19 | + private onBack: () => void = () => { | ||
| 20 | + } | ||
| 18 | 21 | ||
| 19 | aboutToAppear(): void { | 22 | aboutToAppear(): void { |
| 20 | - const sn = DateTimeUtils.parseDate(this.contentDetailData.liveInfo.startTime, DateTimeUtils.PATTERN_DATE_TIME_HYPHEN) | 23 | + const sn = |
| 24 | + DateTimeUtils.parseDate(this.contentDetailData.liveInfo.startTime, DateTimeUtils.PATTERN_DATE_TIME_HYPHEN) | ||
| 21 | const en = DateTimeUtils.parseDate(this.contentDetailData.liveInfo.endTime, DateTimeUtils.PATTERN_DATE_TIME_HYPHEN) | 25 | const en = DateTimeUtils.parseDate(this.contentDetailData.liveInfo.endTime, DateTimeUtils.PATTERN_DATE_TIME_HYPHEN) |
| 22 | const sd = DateTimeUtils.getDuration(sn, en) | 26 | const sd = DateTimeUtils.getDuration(sn, en) |
| 23 | this.duration = DateTimeUtils.secondToTime(sd / 1000) | 27 | this.duration = DateTimeUtils.secondToTime(sd / 1000) |
| @@ -113,7 +117,12 @@ export struct PlayerEndView { | @@ -113,7 +117,12 @@ export struct PlayerEndView { | ||
| 113 | .fontWeight(400) | 117 | .fontWeight(400) |
| 114 | .fontSize(16) | 118 | .fontSize(16) |
| 115 | .fontColor(Color.White) | 119 | .fontColor(Color.White) |
| 116 | - .padding({ top: 8, bottom: 8, left: 122, right: 122 }) | 120 | + .padding({ |
| 121 | + top: 8, | ||
| 122 | + bottom: 8, | ||
| 123 | + left: 122, | ||
| 124 | + right: 122 | ||
| 125 | + }) | ||
| 117 | .backgroundColor(this.followStatus == '0' ? '#FFED2800' : Color.Grey) | 126 | .backgroundColor(this.followStatus == '0' ? '#FFED2800' : Color.Grey) |
| 118 | .borderRadius(4) | 127 | .borderRadius(4) |
| 119 | .onClick(() => { | 128 | .onClick(() => { |
| @@ -140,8 +149,30 @@ export struct PlayerEndView { | @@ -140,8 +149,30 @@ export struct PlayerEndView { | ||
| 140 | } | 149 | } |
| 141 | .width(307) | 150 | .width(307) |
| 142 | .padding({ top: 40 }) | 151 | .padding({ top: 40 }) |
| 152 | + | ||
| 153 | + Blank() | ||
| 154 | + | ||
| 155 | + // 返回按钮 | ||
| 156 | + Row() { | ||
| 157 | + Image($r('app.media.icon_arrow_left_white')) | ||
| 158 | + .width(24) | ||
| 159 | + .height(24) | ||
| 160 | + .aspectRatio(1) | ||
| 161 | + .interpolation(ImageInterpolation.High) | ||
| 162 | + .hoverEffect(HoverEffect.Scale) | ||
| 163 | + .margin({ bottom: 30 ,left:14}) | ||
| 164 | + .onClick(() => { | ||
| 165 | + if (this.onBack) { | ||
| 166 | + this.onBack() | ||
| 167 | + } | ||
| 168 | + router.back(); | ||
| 169 | + }) | ||
| 170 | + | ||
| 171 | + }.width('100%') | ||
| 172 | + | ||
| 143 | } | 173 | } |
| 144 | .height('100%') | 174 | .height('100%') |
| 175 | + .width('100%') | ||
| 145 | 176 | ||
| 146 | } | 177 | } |
| 147 | } | 178 | } |
| @@ -7,12 +7,13 @@ import { | @@ -7,12 +7,13 @@ import { | ||
| 7 | paused, | 7 | paused, |
| 8 | stopped, | 8 | stopped, |
| 9 | completion, | 9 | completion, |
| 10 | - error} from 'premierlibrary/src/main/ets/com/aliyun/player/IPlayer'; | 10 | + error |
| 11 | +} from 'premierlibrary/src/main/ets/com/aliyun/player/IPlayer'; | ||
| 11 | 12 | ||
| 12 | import { initGlobalPlayerSettings, setupPlayerConfig } from '../utils/GlobalSetting'; | 13 | import { initGlobalPlayerSettings, setupPlayerConfig } from '../utils/GlobalSetting'; |
| 13 | import prompt from '@ohos.promptAction'; | 14 | import prompt from '@ohos.promptAction'; |
| 14 | import { PlayerConstants, AVPlayerStatus, Events } from '../constants/PlayerConstants'; | 15 | import { PlayerConstants, AVPlayerStatus, Events } from '../constants/PlayerConstants'; |
| 15 | -import { Logger } from 'wdKit/Index'; | 16 | +import { Logger, StringUtils } from 'wdKit/Index'; |
| 16 | 17 | ||
| 17 | const TAG = "WDAliPlayerController" | 18 | const TAG = "WDAliPlayerController" |
| 18 | 19 | ||
| @@ -26,7 +27,6 @@ const TAG = "WDAliPlayerController" | @@ -26,7 +27,6 @@ const TAG = "WDAliPlayerController" | ||
| 26 | export class WDAliPlayerController { | 27 | export class WDAliPlayerController { |
| 27 | private initPromise: Promise<void>; | 28 | private initPromise: Promise<void>; |
| 28 | private avPlayer?: AliPlayer; | 29 | private avPlayer?: AliPlayer; |
| 29 | - | ||
| 30 | // 内部播放器状态 | 30 | // 内部播放器状态 |
| 31 | private avPlayerStatus: number = idle | 31 | private avPlayerStatus: number = idle |
| 32 | private duration: number = 0; | 32 | private duration: number = 0; |
| @@ -38,18 +38,14 @@ export class WDAliPlayerController { | @@ -38,18 +38,14 @@ export class WDAliPlayerController { | ||
| 38 | private seekTime: number = 0; | 38 | private seekTime: number = 0; |
| 39 | private positionY: number = 0; | 39 | private positionY: number = 0; |
| 40 | private startTime: number = 0 | 40 | private startTime: number = 0 |
| 41 | - | ||
| 42 | public errorCode?: number | 41 | public errorCode?: number |
| 43 | public errorMesage?: string | 42 | public errorMesage?: string |
| 44 | - | ||
| 45 | public onVideoSizeChange?: (width: number, height: number) => void; | 43 | public onVideoSizeChange?: (width: number, height: number) => void; |
| 46 | public onBufferUpdate?: (buffered: number, duration: number) => void; | 44 | public onBufferUpdate?: (buffered: number, duration: number) => void; |
| 47 | public onTimeUpdate?: (position: number, duration: number) => void; | 45 | public onTimeUpdate?: (position: number, duration: number) => void; |
| 48 | public onVolumeUpdate?: (volume: number) => void; | 46 | public onVolumeUpdate?: (volume: number) => void; |
| 49 | - | ||
| 50 | // 播放完成,决定是否继续播放回调 | 47 | // 播放完成,决定是否继续播放回调 |
| 51 | public continue?: () => void; | 48 | public continue?: () => void; |
| 52 | - | ||
| 53 | // 准备完成,决定是否播放回调。如果不实现,则自动播放 | 49 | // 准备完成,决定是否播放回调。如果不实现,则自动播放 |
| 54 | public onCanplay?: () => void; | 50 | public onCanplay?: () => void; |
| 55 | public onStatusChange?: (status: number) => void; | 51 | public onStatusChange?: (status: number) => void; |
| @@ -117,12 +113,12 @@ export class WDAliPlayerController { | @@ -117,12 +113,12 @@ export class WDAliPlayerController { | ||
| 117 | onInfo: (bean: InfoBean) => { | 113 | onInfo: (bean: InfoBean) => { |
| 118 | 114 | ||
| 119 | if (bean.getCode() === InfoCode.CurrentPosition) { | 115 | if (bean.getCode() === InfoCode.CurrentPosition) { |
| 120 | - let position : number = bean.getExtraValue() | 116 | + let position: number = bean.getExtraValue() |
| 121 | Logger.debug(TAG, `播放进度条:${position}/ ${this.duration}`) | 117 | Logger.debug(TAG, `播放进度条:${position}/ ${this.duration}`) |
| 122 | this.initProgress(position); | 118 | this.initProgress(position); |
| 123 | 119 | ||
| 124 | } else if (bean.getCode() === InfoCode.BufferedPosition) { | 120 | } else if (bean.getCode() === InfoCode.BufferedPosition) { |
| 125 | - let buffer : number = bean.getExtraValue() | 121 | + let buffer: number = bean.getExtraValue() |
| 126 | if (this.onBufferUpdate) { | 122 | if (this.onBufferUpdate) { |
| 127 | this.onBufferUpdate(buffer, this.duration) | 123 | this.onBufferUpdate(buffer, this.duration) |
| 128 | } | 124 | } |
| @@ -140,7 +136,8 @@ export class WDAliPlayerController { | @@ -140,7 +136,8 @@ export class WDAliPlayerController { | ||
| 140 | switch (status) { | 136 | switch (status) { |
| 141 | case initalized: { | 137 | case initalized: { |
| 142 | //this.avPlayer?.prepare(); | 138 | //this.avPlayer?.prepare(); |
| 143 | - } break | 139 | + } |
| 140 | + break | ||
| 144 | case prepared: { | 141 | case prepared: { |
| 145 | if (this.startTime) { | 142 | if (this.startTime) { |
| 146 | this.setSeekTime(this.startTime, SliderChangeMode.Begin); | 143 | this.setSeekTime(this.startTime, SliderChangeMode.Begin); |
| @@ -154,20 +151,24 @@ export class WDAliPlayerController { | @@ -154,20 +151,24 @@ export class WDAliPlayerController { | ||
| 154 | } else { | 151 | } else { |
| 155 | this.play() | 152 | this.play() |
| 156 | } | 153 | } |
| 157 | - } break | 154 | + } |
| 155 | + break | ||
| 158 | case started: { | 156 | case started: { |
| 159 | this.setBright(); | 157 | this.setBright(); |
| 160 | this.status = PlayerConstants.STATUS_START; | 158 | this.status = PlayerConstants.STATUS_START; |
| 161 | this.watchStatus(); | 159 | this.watchStatus(); |
| 162 | - } break | 160 | + } |
| 161 | + break | ||
| 163 | case paused: { | 162 | case paused: { |
| 164 | this.status = PlayerConstants.STATUS_PAUSE; | 163 | this.status = PlayerConstants.STATUS_PAUSE; |
| 165 | this.watchStatus(); | 164 | this.watchStatus(); |
| 166 | - } break | 165 | + } |
| 166 | + break | ||
| 167 | case stopped: { | 167 | case stopped: { |
| 168 | this.status = PlayerConstants.STATUS_STOP; | 168 | this.status = PlayerConstants.STATUS_STOP; |
| 169 | this.watchStatus(); | 169 | this.watchStatus(); |
| 170 | - } break | 170 | + } |
| 171 | + break | ||
| 171 | case completion: { | 172 | case completion: { |
| 172 | this.status = PlayerConstants.STATUS_COMPLETION; | 173 | this.status = PlayerConstants.STATUS_COMPLETION; |
| 173 | this.watchStatus(); | 174 | this.watchStatus(); |
| @@ -179,7 +180,8 @@ export class WDAliPlayerController { | @@ -179,7 +180,8 @@ export class WDAliPlayerController { | ||
| 179 | //this.url = this.avPlayer.url || ''; | 180 | //this.url = this.avPlayer.url || ''; |
| 180 | //this.avPlayer.reset(); | 181 | //this.avPlayer.reset(); |
| 181 | } | 182 | } |
| 182 | - } break | 183 | + } |
| 184 | + break | ||
| 183 | case error: { | 185 | case error: { |
| 184 | // 这里拿不到错误信息 | 186 | // 这里拿不到错误信息 |
| 185 | // this.status = PlayerConstants.STATUS_ERROR; | 187 | // this.status = PlayerConstants.STATUS_ERROR; |
| @@ -189,7 +191,7 @@ export class WDAliPlayerController { | @@ -189,7 +191,7 @@ export class WDAliPlayerController { | ||
| 189 | } | 191 | } |
| 190 | }); | 192 | }); |
| 191 | this.avPlayer?.setOnErrorListener({ | 193 | this.avPlayer?.setOnErrorListener({ |
| 192 | - onError:(errorInfo) => { | 194 | + onError: (errorInfo) => { |
| 193 | Logger.error(TAG, "播放错误", JSON.stringify(errorInfo)) | 195 | Logger.error(TAG, "播放错误", JSON.stringify(errorInfo)) |
| 194 | this.errorCode = errorInfo.getCode() | 196 | this.errorCode = errorInfo.getCode() |
| 195 | this.errorMesage = errorInfo.getMsg() | 197 | this.errorMesage = errorInfo.getMsg() |
| @@ -220,21 +222,29 @@ export class WDAliPlayerController { | @@ -220,21 +222,29 @@ export class WDAliPlayerController { | ||
| 220 | } | 222 | } |
| 221 | 223 | ||
| 222 | private setAliPlayerURL(url: string) { | 224 | private setAliPlayerURL(url: string) { |
| 223 | - let urlSource : UrlSource = new UrlSource() | 225 | + let urlSource: UrlSource = new UrlSource() |
| 224 | urlSource.setUri(url) | 226 | urlSource.setUri(url) |
| 225 | this.avPlayer?.setUrlDataSource(urlSource) | 227 | this.avPlayer?.setUrlDataSource(urlSource) |
| 226 | } | 228 | } |
| 227 | 229 | ||
| 228 | - private getStatusStringWith(status: number) : string { | 230 | + private getStatusStringWith(status: number): string { |
| 229 | switch (status) { | 231 | switch (status) { |
| 230 | - case idle: return 'idle' | ||
| 231 | - case initalized: return 'initalized' | ||
| 232 | - case prepared: return 'prepared' | ||
| 233 | - case started: return 'started' | ||
| 234 | - case paused: return 'paused' | ||
| 235 | - case stopped: return 'stopped' | ||
| 236 | - case completion: return 'completion' | ||
| 237 | - case error: return 'error' | 232 | + case idle: |
| 233 | + return 'idle' | ||
| 234 | + case initalized: | ||
| 235 | + return 'initalized' | ||
| 236 | + case prepared: | ||
| 237 | + return 'prepared' | ||
| 238 | + case started: | ||
| 239 | + return 'started' | ||
| 240 | + case paused: | ||
| 241 | + return 'paused' | ||
| 242 | + case stopped: | ||
| 243 | + return 'stopped' | ||
| 244 | + case completion: | ||
| 245 | + return 'completion' | ||
| 246 | + case error: | ||
| 247 | + return 'error' | ||
| 238 | } | 248 | } |
| 239 | return 'unknow' | 249 | return 'unknow' |
| 240 | } | 250 | } |
| @@ -256,6 +266,10 @@ export class WDAliPlayerController { | @@ -256,6 +266,10 @@ export class WDAliPlayerController { | ||
| 256 | } | 266 | } |
| 257 | 267 | ||
| 258 | async firstPlay(url: string) { | 268 | async firstPlay(url: string) { |
| 269 | + if (StringUtils.isEmpty(url)) { | ||
| 270 | + return | ||
| 271 | + } | ||
| 272 | + | ||
| 259 | this.url = url; | 273 | this.url = url; |
| 260 | if (this.avPlayer == null) { | 274 | if (this.avPlayer == null) { |
| 261 | Logger.info(TAG, "等待播放器初始化") | 275 | Logger.info(TAG, "等待播放器初始化") |
| @@ -278,7 +292,7 @@ export class WDAliPlayerController { | @@ -278,7 +292,7 @@ export class WDAliPlayerController { | ||
| 278 | 292 | ||
| 279 | this.avPlayer?.setAutoPlay(false) | 293 | this.avPlayer?.setAutoPlay(false) |
| 280 | 294 | ||
| 281 | - Logger.debug(TAG, "开始播放", this.url) | 295 | + Logger.debug(TAG, "开始播放:"+ this.url) |
| 282 | this.setAliPlayerURL(this.url); | 296 | this.setAliPlayerURL(this.url); |
| 283 | 297 | ||
| 284 | Logger.info(TAG, "设置SurfaceId: " + this.surfaceId) | 298 | Logger.info(TAG, "设置SurfaceId: " + this.surfaceId) |
| @@ -175,7 +175,7 @@ export class WDPlayerController { | @@ -175,7 +175,7 @@ export class WDPlayerController { | ||
| 175 | this.pageParam = pageParam | 175 | this.pageParam = pageParam |
| 176 | } | 176 | } |
| 177 | if (this.avPlayer == null) { | 177 | if (this.avPlayer == null) { |
| 178 | - Logger.error("等待") | 178 | + console.log("等待") |
| 179 | await this.initPromise; | 179 | await this.initPromise; |
| 180 | } else { | 180 | } else { |
| 181 | if (this.avPlayer.state != AVPlayerStatus.IDLE) { | 181 | if (this.avPlayer.state != AVPlayerStatus.IDLE) { |
| @@ -188,7 +188,7 @@ export class WDPlayerController { | @@ -188,7 +188,7 @@ export class WDPlayerController { | ||
| 188 | if (this.avPlayer == null) { | 188 | if (this.avPlayer == null) { |
| 189 | return | 189 | return |
| 190 | } | 190 | } |
| 191 | - Logger.error("开始播放", this.url) | 191 | + console.log("开始播放", this.url) |
| 192 | this.avPlayer.url = this.url; | 192 | this.avPlayer.url = this.url; |
| 193 | //加载时长prepareTime | 193 | //加载时长prepareTime |
| 194 | this.creatEndTime = DateTimeUtils.getTimeStamp() | 194 | this.creatEndTime = DateTimeUtils.getTimeStamp() |
| @@ -3,9 +3,10 @@ import { ProcessUtils, WDRouterRule } from 'wdRouter'; | @@ -3,9 +3,10 @@ import { ProcessUtils, WDRouterRule } from 'wdRouter'; | ||
| 3 | import { WDRouterPage } from 'wdRouter'; | 3 | import { WDRouterPage } from 'wdRouter'; |
| 4 | import { Logger, SPHelper } from 'wdKit/Index'; | 4 | import { Logger, SPHelper } from 'wdKit/Index'; |
| 5 | import { SpConstants } from 'wdConstant/Index'; | 5 | import { SpConstants } from 'wdConstant/Index'; |
| 6 | -import LaunchDataModel from '../viewModel/LaunchDataModel' | 6 | +import LaunchDataModel, { defaultLaunchModel } from '../viewModel/LaunchDataModel' |
| 7 | 7 | ||
| 8 | import { ParamType, TrackConstants, TrackingButton, TrackingContent } from 'wdTracking/Index'; | 8 | import { ParamType, TrackConstants, TrackingButton, TrackingContent } from 'wdTracking/Index'; |
| 9 | +import { ContentDTO } from 'wdBean/Index'; | ||
| 9 | 10 | ||
| 10 | 11 | ||
| 11 | @Entry | 12 | @Entry |
| @@ -13,14 +14,11 @@ import { ParamType, TrackConstants, TrackingButton, TrackingContent } from 'wdTr | @@ -13,14 +14,11 @@ import { ParamType, TrackConstants, TrackingButton, TrackingContent } from 'wdTr | ||
| 13 | struct LaunchAdvertisingPage { | 14 | struct LaunchAdvertisingPage { |
| 14 | @State time: number = 4 | 15 | @State time: number = 4 |
| 15 | timer :number = -1 | 16 | timer :number = -1 |
| 16 | - @State model : LaunchDataModel = {} as LaunchDataModel | ||
| 17 | pageParam: ParamType = {} | 17 | pageParam: ParamType = {} |
| 18 | 18 | ||
| 19 | + @State defaultModel:defaultLaunchModel = new defaultLaunchModel() | ||
| 19 | 20 | ||
| 20 | enter() { | 21 | enter() { |
| 21 | - // router.replaceUrl({ | ||
| 22 | - // url:'pages/MainPage' | ||
| 23 | - // }) | ||
| 24 | WDRouterRule.jumpWithReplacePage(WDRouterPage.mainPage) | 22 | WDRouterRule.jumpWithReplacePage(WDRouterPage.mainPage) |
| 25 | clearInterval(this.timer) | 23 | clearInterval(this.timer) |
| 26 | } | 24 | } |
| @@ -28,12 +26,16 @@ struct LaunchAdvertisingPage { | @@ -28,12 +26,16 @@ struct LaunchAdvertisingPage { | ||
| 28 | aboutToAppear(): void { | 26 | aboutToAppear(): void { |
| 29 | let dataModelStr : string = SPHelper.default.getSync(SpConstants.APP_LAUNCH_PAGE_DATA_MODEL,'') as string | 27 | let dataModelStr : string = SPHelper.default.getSync(SpConstants.APP_LAUNCH_PAGE_DATA_MODEL,'') as string |
| 30 | let dataModel : LaunchDataModel = JSON.parse(dataModelStr) | 28 | let dataModel : LaunchDataModel = JSON.parse(dataModelStr) |
| 31 | - this.model = dataModel | ||
| 32 | console.log(dataModelStr) | 29 | console.log(dataModelStr) |
| 33 | - if(this.model.launchAdInfo.length){ | 30 | + |
| 31 | + this.rebaseDefaultModel(dataModel) | ||
| 32 | + | ||
| 33 | + | ||
| 34 | + if(this.defaultModel){ | ||
| 34 | //设置倒计时时间 | 35 | //设置倒计时时间 |
| 35 | - this.time = this.model.launchAdInfo[0].displayDuration | 36 | + this.time = this.defaultModel.durations |
| 36 | } | 37 | } |
| 38 | + | ||
| 37 | this.contentTrackingDict() | 39 | this.contentTrackingDict() |
| 38 | 40 | ||
| 39 | this.trackingLaunchShow() | 41 | this.trackingLaunchShow() |
| @@ -41,7 +43,6 @@ struct LaunchAdvertisingPage { | @@ -41,7 +43,6 @@ struct LaunchAdvertisingPage { | ||
| 41 | 43 | ||
| 42 | 44 | ||
| 43 | onPageShow(){ | 45 | onPageShow(){ |
| 44 | - | ||
| 45 | this.timer = setInterval(() => { | 46 | this.timer = setInterval(() => { |
| 46 | this.time-- | 47 | this.time-- |
| 47 | if (this.time < 1) { | 48 | if (this.time < 1) { |
| @@ -49,29 +50,22 @@ struct LaunchAdvertisingPage { | @@ -49,29 +50,22 @@ struct LaunchAdvertisingPage { | ||
| 49 | clearInterval(this.timer) | 50 | clearInterval(this.timer) |
| 50 | } | 51 | } |
| 51 | },1000) | 52 | },1000) |
| 52 | - | ||
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | build(){ | 55 | build(){ |
| 56 | Column(){ | 56 | Column(){ |
| 57 | Stack({alignContent:Alignment.Bottom}){ | 57 | Stack({alignContent:Alignment.Bottom}){ |
| 58 | - | ||
| 59 | Stack({alignContent:Alignment.Bottom}){ | 58 | Stack({alignContent:Alignment.Bottom}){ |
| 60 | Column(){ | 59 | Column(){ |
| 61 | - if(this.model.launchAdInfo.length && !(this.model.launchAdInfo[0].matInfo.matType == '1')){ | 60 | + if(this.defaultModel.showType === '1'){ |
| 61 | + //显示视频播放 | ||
| 62 | + }else { | ||
| 62 | //显示图片 | 63 | //显示图片 |
| 63 | - Image(this.model.launchAdInfo[0].matInfo.matImageUrl[0]) | 64 | + Image(this.defaultModel.bootScreenUrl) |
| 65 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) | ||
| 64 | .width('100%') | 66 | .width('100%') |
| 65 | .height('100%') | 67 | .height('100%') |
| 66 | - // .margin({ | ||
| 67 | - // top:'128lpx',left:'48lpx',right:'48lpx',bottom:'128lpx' | ||
| 68 | - // }) | ||
| 69 | - }else { | ||
| 70 | - //显示视频播放 | ||
| 71 | - | ||
| 72 | - | ||
| 73 | } | 68 | } |
| 74 | - | ||
| 75 | } | 69 | } |
| 76 | .justifyContent(FlexAlign.Center) | 70 | .justifyContent(FlexAlign.Center) |
| 77 | .width('100%') | 71 | .width('100%') |
| @@ -83,6 +77,7 @@ struct LaunchAdvertisingPage { | @@ -83,6 +77,7 @@ struct LaunchAdvertisingPage { | ||
| 83 | Stack({alignContent:Alignment.TopEnd}){ | 77 | Stack({alignContent:Alignment.TopEnd}){ |
| 84 | Button(){ | 78 | Button(){ |
| 85 | Text(this.time + 's 跳过') | 79 | Text(this.time + 's 跳过') |
| 80 | + // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) | ||
| 86 | .fontSize('27lpx') | 81 | .fontSize('27lpx') |
| 87 | .fontColor(Color.White) | 82 | .fontColor(Color.White) |
| 88 | .margin({left:'28lpx',right:'28lpx'}) | 83 | .margin({left:'28lpx',right:'28lpx'}) |
| @@ -90,7 +85,7 @@ struct LaunchAdvertisingPage { | @@ -90,7 +85,7 @@ struct LaunchAdvertisingPage { | ||
| 90 | } | 85 | } |
| 91 | .width('148lpx') | 86 | .width('148lpx') |
| 92 | .height('56lpx') | 87 | .height('56lpx') |
| 93 | - .margin({top:'54lpx',right:'19lpx'}) | 88 | + .margin({top:'10lpx',right:'19lpx'}) |
| 94 | .backgroundColor('#80000000') | 89 | .backgroundColor('#80000000') |
| 95 | .onClick(() => { | 90 | .onClick(() => { |
| 96 | this.enter() | 91 | this.enter() |
| @@ -99,11 +94,12 @@ struct LaunchAdvertisingPage { | @@ -99,11 +94,12 @@ struct LaunchAdvertisingPage { | ||
| 99 | } | 94 | } |
| 100 | .width('100%') | 95 | .width('100%') |
| 101 | .height('100%') | 96 | .height('100%') |
| 102 | - if(this.model.launchAdInfo.length && !(this.model.launchAdInfo[0].matInfo.startStyle == 1)){ | 97 | + |
| 98 | + if(this.defaultModel.screenType != '2'){ | ||
| 103 | //底部logo样式 按钮加载在背景展示图上 | 99 | //底部logo样式 按钮加载在背景展示图上 |
| 104 | Button(){ | 100 | Button(){ |
| 105 | Row(){ | 101 | Row(){ |
| 106 | - Text('点击跳转至详情或第三方应用') | 102 | + Text('点击跳转至详情') |
| 107 | .fontSize('31lpx') | 103 | .fontSize('31lpx') |
| 108 | .fontColor(Color.White) | 104 | .fontColor(Color.White) |
| 109 | .margin({ | 105 | .margin({ |
| @@ -126,17 +122,16 @@ struct LaunchAdvertisingPage { | @@ -126,17 +122,16 @@ struct LaunchAdvertisingPage { | ||
| 126 | }) | 122 | }) |
| 127 | } | 123 | } |
| 128 | } | 124 | } |
| 129 | - | ||
| 130 | } | 125 | } |
| 131 | .width('100%') | 126 | .width('100%') |
| 132 | .height('84%') | 127 | .height('84%') |
| 133 | .margin({top:'0'}) | 128 | .margin({top:'0'}) |
| 134 | 129 | ||
| 135 | - if(this.model.launchAdInfo.length && this.model.launchAdInfo[0].matInfo.startStyle == 1){ | 130 | + if(this.defaultModel.screenType === '2'){ |
| 136 | //全屏样式,底部无logo 按钮放在原底部logo位置 | 131 | //全屏样式,底部无logo 按钮放在原底部logo位置 |
| 137 | Button(){ | 132 | Button(){ |
| 138 | Row(){ | 133 | Row(){ |
| 139 | - Text('点击跳转至详情或第三方应用') | 134 | + Text('点击跳转至详情') |
| 140 | .fontSize('31lpx') | 135 | .fontSize('31lpx') |
| 141 | .fontColor(Color.White) | 136 | .fontColor(Color.White) |
| 142 | .margin({ | 137 | .margin({ |
| @@ -164,8 +159,8 @@ struct LaunchAdvertisingPage { | @@ -164,8 +159,8 @@ struct LaunchAdvertisingPage { | ||
| 164 | .height('154lpx') | 159 | .height('154lpx') |
| 165 | .margin({top: '28lpx'}) | 160 | .margin({top: '28lpx'}) |
| 166 | } | 161 | } |
| 167 | - | ||
| 168 | } | 162 | } |
| 163 | + .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) | ||
| 169 | .width('100%') | 164 | .width('100%') |
| 170 | .height('100%') | 165 | .height('100%') |
| 171 | .backgroundColor(Color.White) | 166 | .backgroundColor(Color.White) |
| @@ -179,25 +174,59 @@ struct LaunchAdvertisingPage { | @@ -179,25 +174,59 @@ struct LaunchAdvertisingPage { | ||
| 179 | ///埋点 | 174 | ///埋点 |
| 180 | this.trackingLaunchClick() | 175 | this.trackingLaunchClick() |
| 181 | 176 | ||
| 182 | - if(this.model.launchAdInfo.length){ | ||
| 183 | - if (this.model.launchAdInfo[0].matInfo.openType == '2') { | 177 | + if(this.defaultModel.linkUrl.length > 0){ |
| 178 | + if (this.defaultModel.objectType == '2') { | ||
| 184 | //端外打开 | 179 | //端外打开 |
| 185 | - ProcessUtils.jumpExternalWebPage(this.model.launchAdInfo[0].matInfo.linkUrl) | ||
| 186 | - //clearInterval(this.timer) | 180 | + ProcessUtils.jumpExternalWebPage(this.defaultModel.linkUrl) |
| 187 | }else { | 181 | }else { |
| 188 | //端内打开 | 182 | //端内打开 |
| 189 | - ProcessUtils.gotoDefaultWebPage(this.model.launchAdInfo[0].matInfo.linkUrl) | ||
| 190 | - //clearInterval(this.timer) | ||
| 191 | - | ||
| 192 | - } | 183 | + ProcessUtils.gotoDefaultWebPage(this.defaultModel.linkUrl) |
| 184 | + } | ||
| 185 | + }else if(this.defaultModel.objectId.length > 0){ | ||
| 186 | + let contentDTO :ContentDTO = new ContentDTO(); | ||
| 187 | + contentDTO.objectType = this.defaultModel.objectType | ||
| 188 | + contentDTO.objectId = this.defaultModel.objectId | ||
| 189 | + ProcessUtils.processPage(contentDTO) | ||
| 190 | + } | ||
| 191 | + } | ||
| 192 | + | ||
| 193 | + rebaseDefaultModel(dataModel : LaunchDataModel){ | ||
| 194 | + if (dataModel.launchPageInfo){ | ||
| 195 | + this.defaultModel.ID = dataModel.launchPageInfo.ID | ||
| 196 | + this.defaultModel.screenName = dataModel.launchPageInfo.screenName | ||
| 197 | + this.defaultModel.objectType = dataModel.launchPageInfo.objectType | ||
| 198 | + this.defaultModel.objectId = dataModel.launchPageInfo.objectId | ||
| 199 | + this.defaultModel.objectLevel = dataModel.launchPageInfo.objectLevel | ||
| 200 | + this.defaultModel.pageId = dataModel.launchPageInfo.pageId | ||
| 201 | + this.defaultModel.durations = dataModel.launchPageInfo.durations | ||
| 202 | + this.defaultModel.linkUrl = dataModel.launchPageInfo.linkUrl | ||
| 203 | + this.defaultModel.screenType = dataModel.launchPageInfo.screenType | ||
| 204 | + this.defaultModel.bootScreenUrl = dataModel.launchPageInfo.bootScreenUrl | ||
| 205 | + this.defaultModel.bootVideoUrl = dataModel.launchPageInfo.bootScreenUrl | ||
| 206 | + this.defaultModel.bootVideoScreenUrl = dataModel.launchPageInfo.bootVideoScreenUrl | ||
| 207 | + this.defaultModel.showType = dataModel.launchPageInfo.showType | ||
| 208 | + this.defaultModel.isAd = dataModel.launchPageInfo.isAd | ||
| 209 | + this.defaultModel.bottomNavId = dataModel.launchPageInfo.bottomNavId | ||
| 210 | + this.defaultModel.relId = dataModel.launchPageInfo.relId | ||
| 211 | + this.defaultModel.openType = '1' | ||
| 212 | + }else if (dataModel.launchAdInfo.length > 0){ | ||
| 213 | + this.defaultModel.ID = dataModel.launchAdInfo[0].ID | ||
| 214 | + this.defaultModel.screenName = dataModel.launchAdInfo[0].matInfo.advTitle | ||
| 215 | + this.defaultModel.durations = dataModel.launchAdInfo[0].displayDuration | ||
| 216 | + this.defaultModel.linkUrl = dataModel.launchAdInfo[0].matInfo.linkUrl | ||
| 217 | + this.defaultModel.screenType = dataModel.launchAdInfo[0].matInfo.startStyle | ||
| 218 | + this.defaultModel.bootScreenUrl = dataModel.launchAdInfo[0].matInfo.matImageUrl[0] | ||
| 219 | + this.defaultModel.bootVideoUrl = dataModel.launchAdInfo[0].matInfo.matVideoUrl | ||
| 220 | + this.defaultModel.showType = dataModel.launchAdInfo[0].matInfo.matType | ||
| 221 | + this.defaultModel.isAd = '1' | ||
| 193 | } | 222 | } |
| 194 | } | 223 | } |
| 195 | 224 | ||
| 196 | contentTrackingDict(){ | 225 | contentTrackingDict(){ |
| 197 | this.pageParam = { | 226 | this.pageParam = { |
| 198 | - 'adType':'0', | ||
| 199 | - 'adId':this.model.launchAdInfo[0]?.matInfo.id.toString(), | ||
| 200 | - 'adName':this.model.launchAdInfo[0]?.matInfo.advTitle, | 227 | + 'adType':this.defaultModel.showType, |
| 228 | + 'adId':this.defaultModel.ID, | ||
| 229 | + 'adName':this.defaultModel.screenName, | ||
| 201 | 'regionName':'0' | 230 | 'regionName':'0' |
| 202 | } | 231 | } |
| 203 | } | 232 | } |
| @@ -10,7 +10,6 @@ import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index'; | @@ -10,7 +10,6 @@ import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index'; | ||
| 10 | @Component | 10 | @Component |
| 11 | struct LaunchInterestsHobbiesPage { | 11 | struct LaunchInterestsHobbiesPage { |
| 12 | @State message: string = 'Hello World' | 12 | @State message: string = 'Hello World' |
| 13 | - @State dataArray: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] | ||
| 14 | @State selectCount: number = 0 | 13 | @State selectCount: number = 0 |
| 15 | @State interestsArray: InterestsList[] = [] | 14 | @State interestsArray: InterestsList[] = [] |
| 16 | 15 | ||
| @@ -20,7 +19,6 @@ struct LaunchInterestsHobbiesPage { | @@ -20,7 +19,6 @@ struct LaunchInterestsHobbiesPage { | ||
| 20 | this.requestInterestsData() | 19 | this.requestInterestsData() |
| 21 | } | 20 | } |
| 22 | 21 | ||
| 23 | - | ||
| 24 | build() { | 22 | build() { |
| 25 | Column() { | 23 | Column() { |
| 26 | Row(){ | 24 | Row(){ |
| @@ -113,7 +113,7 @@ struct LaunchPage { | @@ -113,7 +113,7 @@ struct LaunchPage { | ||
| 113 | let dataModel : LaunchDataModel = JSON.parse(dataModelStr) | 113 | let dataModel : LaunchDataModel = JSON.parse(dataModelStr) |
| 114 | console.log(dataModelStr) | 114 | console.log(dataModelStr) |
| 115 | 115 | ||
| 116 | - if (dataModel.launchAdInfo.length) { | 116 | + if (dataModel.launchPageInfo || dataModel.launchAdInfo.length) { |
| 117 | //跳转广告页 | 117 | //跳转广告页 |
| 118 | this.jumpToAdvertisingPage(); | 118 | this.jumpToAdvertisingPage(); |
| 119 | 119 |
| @@ -56,9 +56,9 @@ export struct VideoChannelPage { | @@ -56,9 +56,9 @@ export struct VideoChannelPage { | ||
| 56 | */ | 56 | */ |
| 57 | getTopNavFontColor(item: TopNavDTO, index: number): Color | string { | 57 | getTopNavFontColor(item: TopNavDTO, index: number): Color | string { |
| 58 | if (item.name === '视频' && this.currentBottomNavInfo.name === '视频') { | 58 | if (item.name === '视频' && this.currentBottomNavInfo.name === '视频') { |
| 59 | - return this.currentTopNavSelectedIndex === index ? Color.White : '#e5e0e0' | 59 | + return this.currentTopNavSelectedIndex === index ? Color.White : '#949494' |
| 60 | } else { | 60 | } else { |
| 61 | - return this.currentTopNavSelectedIndex === index ? Color.Black : "#999999" | 61 | + return this.currentTopNavSelectedIndex === index ? Color.Black : "#B2B2B2" |
| 62 | } | 62 | } |
| 63 | } | 63 | } |
| 64 | 64 | ||
| @@ -74,7 +74,7 @@ export struct VideoChannelPage { | @@ -74,7 +74,7 @@ export struct VideoChannelPage { | ||
| 74 | 74 | ||
| 75 | @Builder | 75 | @Builder |
| 76 | topNavView() { | 76 | topNavView() { |
| 77 | - Stack({ alignContent: Alignment.TopEnd }) { | 77 | + Stack({ alignContent: Alignment.End }) { |
| 78 | Row() { | 78 | Row() { |
| 79 | ForEach(this.topNavList, (item: TopNavDTO, index: number) => { | 79 | ForEach(this.topNavList, (item: TopNavDTO, index: number) => { |
| 80 | Column() { | 80 | Column() { |
| @@ -117,7 +117,7 @@ export struct VideoChannelPage { | @@ -117,7 +117,7 @@ export struct VideoChannelPage { | ||
| 117 | 117 | ||
| 118 | // 搜索按钮 | 118 | // 搜索按钮 |
| 119 | Row() { | 119 | Row() { |
| 120 | - Image($r('app.media.icon_search')) | 120 | + Image($r(this.currentTopNavSelectedIndex === 0 ? 'app.media.icon_search_gray_svg' :'app.media.icon_search_svg')) |
| 121 | .width('24vp') | 121 | .width('24vp') |
| 122 | .height('24vp') | 122 | .height('24vp') |
| 123 | } | 123 | } |
| @@ -8,7 +8,7 @@ export interface NetLayerLaunchOperatModel { | @@ -8,7 +8,7 @@ export interface NetLayerLaunchOperatModel { | ||
| 8 | objectId : string //跳转id | 8 | objectId : string //跳转id |
| 9 | objectLevel : string //频道(1:一级频道,2:二级频道),专题(1:普通专题,2:主题专题,3:作者专题 21:文章专题,22:音频专题,23:直播专题,24:话题专题) | 9 | objectLevel : string //频道(1:一级频道,2:二级频道),专题(1:普通专题,2:主题专题,3:作者专题 21:文章专题,22:音频专题,23:直播专题,24:话题专题) |
| 10 | pageId : string //跳转页面id,objectType=5,14使用页面跳转 | 10 | pageId : string //跳转页面id,objectType=5,14使用页面跳转 |
| 11 | - durations : string //展示时长(单位:秒) | 11 | + durations : number //展示时长(单位:秒) |
| 12 | linkUrl : string //转链接地址【objectType=6,13】 | 12 | linkUrl : string //转链接地址【objectType=6,13】 |
| 13 | screenType : string // 0, 1 : WDDisplayStyle_Logo 2 : WDDisplayStyle_Full | 13 | screenType : string // 0, 1 : WDDisplayStyle_Logo 2 : WDDisplayStyle_Full |
| 14 | bootScreenUrl : string //开机屏封面图/视频地址 | 14 | bootScreenUrl : string //开机屏封面图/视频地址 |
| @@ -17,14 +17,13 @@ export interface NetLayerLaunchOperatModel { | @@ -17,14 +17,13 @@ export interface NetLayerLaunchOperatModel { | ||
| 17 | isAd : string //0-非广告,1-是广告 | 17 | isAd : string //0-非广告,1-是广告 |
| 18 | bottomNavId : string //底部导航ID | 18 | bottomNavId : string //底部导航ID |
| 19 | relId : string //频道/专题内容关系id | 19 | relId : string //频道/专题内容关系id |
| 20 | - | ||
| 21 | } | 20 | } |
| 22 | 21 | ||
| 23 | 22 | ||
| 24 | export interface NetLayerLauncherADMaterialModel{ | 23 | export interface NetLayerLauncherADMaterialModel{ |
| 25 | 24 | ||
| 26 | matType : string //1 video 其他 image | 25 | matType : string //1 video 其他 image |
| 27 | - startStyle : number // 1 WDDisplayStyle_Full 全屏样式 其他 WDDisplayStyle_Logo 底部logo样式 | 26 | + startStyle : string // 1 WDDisplayStyle_Full 全屏样式 其他 WDDisplayStyle_Logo 底部logo样式 |
| 28 | advTitle : string | 27 | advTitle : string |
| 29 | id:number | 28 | id:number |
| 30 | matImageUrl : string[] //取firstObject | 29 | matImageUrl : string[] //取firstObject |
| @@ -65,3 +64,23 @@ export default interface LaunchDataModel{ | @@ -65,3 +64,23 @@ export default interface LaunchDataModel{ | ||
| 65 | h5Template : NetLayerLauncherH5TemplateInfoModel[] | 64 | h5Template : NetLayerLauncherH5TemplateInfoModel[] |
| 66 | 65 | ||
| 67 | } | 66 | } |
| 67 | + | ||
| 68 | +export class defaultLaunchModel{ | ||
| 69 | + ID : string = '' | ||
| 70 | + screenName : string = '' //开机屏名称 | ||
| 71 | + objectType : string = '' // WDPublicProgramType 对象类型 0:不跳转,1:点播,2:直播,3:活动,4:广告,5:专题,6:链接,7:榜单,11:图文,12:组图,13:H5新闻,14:频道 | ||
| 72 | + objectId : string = '' //跳转id | ||
| 73 | + objectLevel : string = '' //频道(1:一级频道,2:二级频道),专题(1:普通专题,2:主题专题,3:作者专题 21:文章专题,22:音频专题,23:直播专题,24:话题专题) | ||
| 74 | + pageId : string = '' //跳转页面id,objectType=5,14使用页面跳转 | ||
| 75 | + durations : number = 0 //展示时长(单位:秒) | ||
| 76 | + linkUrl : string = '' //转链接地址【objectType=6,13】 | ||
| 77 | + screenType : string = '' // 0, 1 : WDDisplayStyle_Logo 2 : WDDisplayStyle_Full | ||
| 78 | + bootScreenUrl : string = '' //开机屏封面图/视频地址 | ||
| 79 | + bootVideoUrl : string = '' //开机屏封面图/视频地址 | ||
| 80 | + bootVideoScreenUrl : string = '' //视频封面地址 | ||
| 81 | + showType : string = '' //文件类型WDPublicFileType 2: 视频 其他: 图片 | ||
| 82 | + isAd : string = '' //0-非广告,1-是广告 | ||
| 83 | + bottomNavId : string = '' //底部导航ID | ||
| 84 | + relId : string = '' //频道/专题内容关系id | ||
| 85 | + openType : string = '' //链接打开方式,0-没链接,不用打开,1-端内打开,2-端外打开 | ||
| 86 | +} |
| @@ -18,6 +18,7 @@ import { JSON } from '@kit.ArkTS' | @@ -18,6 +18,7 @@ import { JSON } from '@kit.ArkTS' | ||
| 18 | import app from '@system.app' | 18 | import app from '@system.app' |
| 19 | import { GetuiPush, HWLocationUtils } from 'wdHwAbility/Index' | 19 | import { GetuiPush, HWLocationUtils } from 'wdHwAbility/Index' |
| 20 | import { ImageKnife, ImageKnifeGlobal } from '@ohos/imageknife' | 20 | import { ImageKnife, ImageKnifeGlobal } from '@ohos/imageknife' |
| 21 | +import { webview } from '@kit.ArkWeb' | ||
| 21 | 22 | ||
| 22 | const TAG = "[StartupManager]" | 23 | const TAG = "[StartupManager]" |
| 23 | 24 | ||
| @@ -120,7 +121,8 @@ export class StartupManager { | @@ -120,7 +121,8 @@ export class StartupManager { | ||
| 120 | GetuiPush.sharedInstance().onReachMainPage() | 121 | GetuiPush.sharedInstance().onReachMainPage() |
| 121 | 122 | ||
| 122 | //TODO: | 123 | //TODO: |
| 123 | - | 124 | + // 提前初始化webview |
| 125 | + webview.WebviewController.initializeWebEngine() | ||
| 124 | resolve() | 126 | resolve() |
| 125 | }) | 127 | }) |
| 126 | } | 128 | } |
-
Please register or login to post a comment