wangliang_wd

feat:优化启动广告

@@ -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 - 183 + ProcessUtils.gotoDefaultWebPage(this.defaultModel.linkUrl)
192 } 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
@@ -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
@@ -64,4 +63,24 @@ export default interface LaunchDataModel{ @@ -64,4 +63,24 @@ export default interface LaunchDataModel{
64 launchAdInfo : NetLayerLauncherADInfoModel[] 63 launchAdInfo : NetLayerLauncherADInfoModel[]
65 h5Template : NetLayerLauncherH5TemplateInfoModel[] 64 h5Template : NetLayerLauncherH5TemplateInfoModel[]
66 65
  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-端外打开
67 } 86 }