liyubing

Merge remote-tracking branch 'origin/main'

Showing 19 changed files with 219 additions and 170 deletions
@@ -98,4 +98,8 @@ export class DeviceUtil { @@ -98,4 +98,8 @@ export class DeviceUtil {
98 static isTablet(): boolean { 98 static isTablet(): boolean {
99 return deviceInfo.deviceType == 'tablet'; 99 return deviceInfo.deviceType == 'tablet';
100 } 100 }
  101 +
  102 + static is2in1(): boolean {
  103 + return deviceInfo.deviceType == '2in1';
  104 + }
101 } 105 }
@@ -43,6 +43,9 @@ export class WindowModel { @@ -43,6 +43,9 @@ export class WindowModel {
43 return this.windowClass as window.Window 43 return this.windowClass as window.Window
44 } 44 }
45 45
  46 + /**
  47 + * @deprecated 应用整体全屏,不需要再设置全屏与否了。
  48 + */
46 setMainWindowFullScreen(fullScreen: boolean) { 49 setMainWindowFullScreen(fullScreen: boolean) {
47 if (deviceInfo.deviceType != "phone") { 50 if (deviceInfo.deviceType != "phone") {
48 return 51 return
@@ -140,6 +143,9 @@ export class WindowModel { @@ -140,6 +143,9 @@ export class WindowModel {
140 return this.windowClass?.getWindowProperties() 143 return this.windowClass?.getWindowProperties()
141 } 144 }
142 145
  146 + /**
  147 + * @deprecated 应用整体全屏,不需要再设置全屏与否了。
  148 + */
143 setWindowLayoutFullScreen(isFullScreen: boolean) { 149 setWindowLayoutFullScreen(isFullScreen: boolean) {
144 this.isFullScreen = isFullScreen 150 this.isFullScreen = isFullScreen
145 this.windowClass?.setWindowLayoutFullScreen(isFullScreen) 151 this.windowClass?.setWindowLayoutFullScreen(isFullScreen)
@@ -82,7 +82,6 @@ export struct CompParser { @@ -82,7 +82,6 @@ export struct CompParser {
82 82
83 if (this.compDTO.operDataList[0]?.objectType !== '3' && 83 if (this.compDTO.operDataList[0]?.objectType !== '3' &&
84 this.compDTO.operDataList[0]?.objectType !== '13') { //暂时屏蔽活动和音频详情入口 84 this.compDTO.operDataList[0]?.objectType !== '13') { //暂时屏蔽活动和音频详情入口
85 -  
86 if (this.compDTO.compStyle === CompStyle.Label_03) { 85 if (this.compDTO.compStyle === CompStyle.Label_03) {
87 LabelComponent({ compDTO: this.compDTO }) 86 LabelComponent({ compDTO: this.compDTO })
88 Divider().strokeWidth(5).color('#f5f5f5').padding({ left: 0, right: 0 }) 87 Divider().strokeWidth(5).color('#f5f5f5').padding({ left: 0, right: 0 })
@@ -108,7 +107,7 @@ export struct CompParser { @@ -108,7 +107,7 @@ export struct CompParser {
108 Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 }) 107 Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
109 } else if (this.compDTO.compStyle === CompStyle.Zh_Single_Row_03) { 108 } else if (this.compDTO.compStyle === CompStyle.Zh_Single_Row_03) {
110 ZhSingleRow03({ compDTO: this.compDTO, pageId: this.pageId, pageName: this.pageName }) 109 ZhSingleRow03({ compDTO: this.compDTO, pageId: this.pageId, pageName: this.pageName })
111 - Divider().strokeWidth(5).color('#f5f5f5').padding({ left: 0, right: 0 }) 110 + Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
112 } else if (this.compDTO.compStyle === CompStyle.Zh_Grid_Layout_02) { //双列流小视频,一行两图卡 ->标题 111 } else if (this.compDTO.compStyle === CompStyle.Zh_Grid_Layout_02) { //双列流小视频,一行两图卡 ->标题
113 //ZhGridLayout02({ compDTO: this.compDTO }) 112 //ZhGridLayout02({ compDTO: this.compDTO })
114 CompNormalTitle({ compDTO: this.compDTO }) 113 CompNormalTitle({ compDTO: this.compDTO })
@@ -136,7 +135,7 @@ export struct CompParser { @@ -136,7 +135,7 @@ export struct CompParser {
136 } else if (this.compDTO.compStyle === CompStyle.Zh_Single_Column_03) { 135 } else if (this.compDTO.compStyle === CompStyle.Zh_Single_Column_03) {
137 // 大图卡 136 // 大图卡
138 Card2Component({ compDTO: this.compDTO, contentDTO: this.compDTO.operDataList[0], pageId: this.pageId, pageName: this.pageName }) 137 Card2Component({ compDTO: this.compDTO, contentDTO: this.compDTO.operDataList[0], pageId: this.pageId, pageName: this.pageName })
139 - Divider().strokeWidth(5).color('#f5f5f5').padding({ left: 0, right: 0 }) 138 + Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
140 } else if (this.compDTO.compStyle === CompStyle.Card_09) { 139 } else if (this.compDTO.compStyle === CompStyle.Card_09) {
141 //时间链卡 140 //时间链卡
142 Card9Component({ compDTO: this.compDTO, contentDTO:this.compDTO.operDataList[0], pageId: this.pageId, pageName: this.pageName }) 141 Card9Component({ compDTO: this.compDTO, contentDTO:this.compDTO.operDataList[0], pageId: this.pageId, pageName: this.pageName })
@@ -35,7 +35,7 @@ export struct topicInfoView { @@ -35,7 +35,7 @@ export struct topicInfoView {
35 if (this.frontLinkObject.linkUrl.length > 0 || this.frontLinkObject?.newsId.length > 0) { 35 if (this.frontLinkObject.linkUrl.length > 0 || this.frontLinkObject?.newsId.length > 0) {
36 Row() { 36 Row() {
37 Text("查看详情") 37 Text("查看详情")
38 - .fontSize(14) 38 + .fontSize(12)
39 .fontColor($r('app.color.white')) 39 .fontColor($r('app.color.white'))
40 .maxLines(1) 40 .maxLines(1)
41 .borderRadius(2) 41 .borderRadius(2)
@@ -59,7 +59,7 @@ export struct topicInfoView { @@ -59,7 +59,7 @@ export struct topicInfoView {
59 ProcessUtils.processPage(contentDTO) 59 ProcessUtils.processPage(contentDTO)
60 60
61 }) 61 })
62 - .width(80) 62 + .width(70)
63 .alignRules({ 63 .alignRules({
64 left: { anchor: "__container__", align: HorizontalAlign.Start }, 64 left: { anchor: "__container__", align: HorizontalAlign.Start },
65 bottom: { anchor: "__container__", align: VerticalAlign.Bottom } 65 bottom: { anchor: "__container__", align: VerticalAlign.Bottom }
@@ -85,7 +85,7 @@ export struct topicInfoView { @@ -85,7 +85,7 @@ export struct topicInfoView {
85 left: { anchor: "__container__", align: HorizontalAlign.Start }, 85 left: { anchor: "__container__", align: HorizontalAlign.Start },
86 bottom: this.frontLinkObject.linkUrl.length > 0 || this.frontLinkObject?.newsId.length > 0 ?{ anchor: "row_detail", align: VerticalAlign.Top }:{ anchor: "__container__", align: VerticalAlign.Bottom } 86 bottom: this.frontLinkObject.linkUrl.length > 0 || this.frontLinkObject?.newsId.length > 0 ?{ anchor: "row_detail", align: VerticalAlign.Top }:{ anchor: "__container__", align: VerticalAlign.Bottom }
87 }) 87 })
88 - .margin({top: 10 , left: 16, right: 16, bottom: this.frontLinkObject.linkUrl.length > 0 || this.frontLinkObject?.newsId.length > 0 ?0:16}) 88 + .margin({top: 10 , left: 16, right: 16, bottom: this.frontLinkObject.linkUrl.length > 0 || this.frontLinkObject?.newsId.length > 0 ?10:16})
89 .id('txt_summary') 89 .id('txt_summary')
90 90
91 Text(this.frontLinkObject?.title ?? "") 91 Text(this.frontLinkObject?.title ?? "")
@@ -44,10 +44,14 @@ export struct ZhSingleRow04 { @@ -44,10 +44,14 @@ export struct ZhSingleRow04 {
44 .onClick(() => { 44 .onClick(() => {
45 if (this.compDTO?.objectType === '11') { 45 if (this.compDTO?.objectType === '11') {
46 ProcessUtils.jumpChannelTab(this.compDTO.objectId, this.compDTO.pageId as string, this.compDTO.objectTitle) 46 ProcessUtils.jumpChannelTab(this.compDTO.objectId, this.compDTO.pageId as string, this.compDTO.objectTitle)
47 - } else if (this.compDTO?.objectType === '5') {  
48 - ProcessUtils._gotoSpecialTopic(this.compDTO.linkUrl)  
49 - } else if (this.compDTO?.objectType === '6') {  
50 - ProcessUtils._gotoDefaultWeb(this.compDTO.linkUrl) 47 + } else {
  48 + const contentDTO: ContentDTO = {
  49 + objectId: this.compDTO.objectId,
  50 + objectType: this.compDTO.objectType,
  51 + linkUrl: this.compDTO.linkUrl,
  52 + pageId: this.compDTO.pageId
  53 + } as ContentDTO
  54 + ProcessUtils.processPage(contentDTO)
51 } 55 }
52 }) 56 })
53 } 57 }
@@ -84,6 +88,7 @@ export struct ZhSingleRow04 { @@ -84,6 +88,7 @@ export struct ZhSingleRow04 {
84 .scrollBar(BarState.Off) 88 .scrollBar(BarState.Off)
85 .width(CommonConstants.FULL_PARENT) 89 .width(CommonConstants.FULL_PARENT)
86 .height(166) 90 .height(166)
  91 + .edgeEffect(EdgeEffect.None)
87 } 92 }
88 .width(CommonConstants.FULL_WIDTH) 93 .width(CommonConstants.FULL_WIDTH)
89 .backgroundColor($r("app.color.white")) 94 .backgroundColor($r("app.color.white"))
@@ -19,6 +19,7 @@ const TAG = 'MinePageComponent'; @@ -19,6 +19,7 @@ const TAG = 'MinePageComponent';
19 */ 19 */
20 @Component 20 @Component
21 export struct MinePageComponent { 21 export struct MinePageComponent {
  22 + private topRectHeight: string = AppStorage.get<number>('topSafeHeight') + 'px';
22 //是否是创作者 23 //是否是创作者
23 @State isCreator:boolean = false 24 @State isCreator:boolean = false
24 @State isLogin:boolean = false //默认 false 测试放开 25 @State isLogin:boolean = false //默认 false 测试放开
@@ -167,6 +168,8 @@ export struct MinePageComponent { @@ -167,6 +168,8 @@ export struct MinePageComponent {
167 .backgroundColor($r('app.color.color_F9F9F9')) 168 .backgroundColor($r('app.color.color_F9F9F9'))
168 .scrollable(ScrollDirection.Vertical) 169 .scrollable(ScrollDirection.Vertical)
169 .scrollBar(BarState.Off) 170 .scrollBar(BarState.Off)
  171 + // 预留状态栏、导航栏高度
  172 + .margin({ top: this.topRectHeight})
170 } 173 }
171 174
172 175
@@ -22,6 +22,7 @@ const storage = LocalStorage.getShared(); @@ -22,6 +22,7 @@ const storage = LocalStorage.getShared();
22 @Entry(storage) 22 @Entry(storage)
23 @Component 23 @Component
24 export struct TopNavigationComponentNew { 24 export struct TopNavigationComponentNew {
  25 + private topRectHeight: string = AppStorage.get<number>('topSafeHeight') + 'px';
25 /** 26 /**
26 * @deprecated 27 * @deprecated
27 */ 28 */
@@ -85,6 +86,7 @@ export struct TopNavigationComponentNew { @@ -85,6 +86,7 @@ export struct TopNavigationComponentNew {
85 navIndex: index, 86 navIndex: index,
86 pageId: navItem?.pageId + '', 87 pageId: navItem?.pageId + '',
87 channelId: navItem?.channelId + '', 88 channelId: navItem?.channelId + '',
  89 + autoRefresh: this.autoRefresh2Page
88 }) 90 })
89 } else 91 } else
90 if (!this.isBroadcast(navItem) && !this.isLayout(navItem)) { 92 if (!this.isBroadcast(navItem) && !this.isLayout(navItem)) {
@@ -137,6 +139,8 @@ export struct TopNavigationComponentNew { @@ -137,6 +139,8 @@ export struct TopNavigationComponentNew {
137 .width('100%') 139 .width('100%')
138 .height('100%') 140 .height('100%')
139 } 141 }
  142 + // 预留状态栏
  143 + .margin({ top: this.topRectHeight })
140 } 144 }
141 145
142 @Builder 146 @Builder
@@ -14,7 +14,6 @@ import { @@ -14,7 +14,6 @@ import {
14 import { ViewType } from 'wdConstant/src/main/ets/enum/ViewType'; 14 import { ViewType } from 'wdConstant/src/main/ets/enum/ViewType';
15 import { channelSkeleton } from '../skeleton/channelSkeleton' 15 import { channelSkeleton } from '../skeleton/channelSkeleton'
16 import { EmptyComponent } from '../view/EmptyComponent'; 16 import { EmptyComponent } from '../view/EmptyComponent';
17 -import { ErrorComponent } from '../view/ErrorComponent';  
18 import { WDRouterPage, WDRouterRule } from 'wdRouter/Index' 17 import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'
19 import MinePageDatasModel from '../../model/MinePageDatasModel'; 18 import MinePageDatasModel from '../../model/MinePageDatasModel';
20 import { FollowListDetailRequestItem } from '../../viewmodel/FollowListDetailRequestItem'; 19 import { FollowListDetailRequestItem } from '../../viewmodel/FollowListDetailRequestItem';
@@ -26,13 +25,14 @@ import PageHelper from '../../viewmodel/PageHelper'; @@ -26,13 +25,14 @@ import PageHelper from '../../viewmodel/PageHelper';
26 import { PeopleShipAttentionContentListTopComponent } from './PeopleShipAttentionContentListTopComponent' 25 import { PeopleShipAttentionContentListTopComponent } from './PeopleShipAttentionContentListTopComponent'
27 import { CardParser } from '../CardParser' 26 import { CardParser } from '../CardParser'
28 import { PeopleShipNoMoreData } from '../reusable/PeopleShipNoMoreData'; 27 import { PeopleShipNoMoreData } from '../reusable/PeopleShipNoMoreData';
29 - 28 +const TAG = 'PeopleShipMainComponent';
30 @Preview 29 @Preview
31 @Component 30 @Component
32 export struct PeopleShipMainComponent { 31 export struct PeopleShipMainComponent {
33 @State private pageModel: PageModel = new PageModel(); 32 @State private pageModel: PageModel = new PageModel();
34 @State private pageAdvModel: PageAdModel = new PageAdModel(); 33 @State private pageAdvModel: PageAdModel = new PageAdModel();
35 - 34 + // 自动刷新通知
  35 + @Prop @Watch('onAutoRefresh') autoRefresh: number = 0
36 navIndex: number = 0; 36 navIndex: number = 0;
37 pageId: string = ""; 37 pageId: string = "";
38 channelId: string = ""; 38 channelId: string = "";
@@ -416,4 +416,13 @@ export struct PeopleShipMainComponent { @@ -416,4 +416,13 @@ export struct PeopleShipMainComponent {
416 } 416 }
417 } 417 }
418 418
  419 + onAutoRefresh(changedPropertyName: string) {
  420 + if (this.navIndex != this.currentTopNavSelectedIndex) {
  421 + return
  422 + }
  423 + // 当前页面,自动刷新数据
  424 + Logger.debug(TAG, 'page onAutoRefresh ' + this.autoRefresh)
  425 + this.currentPage = 1
  426 + this.getData()
  427 + }
419 } 428 }
@@ -138,15 +138,16 @@ struct ChangeBindPhonePage { @@ -138,15 +138,16 @@ struct ChangeBindPhonePage {
138 Row() { 138 Row() {
139 Text("确认") 139 Text("确认")
140 .layoutWeight(1) 140 .layoutWeight(1)
141 - .fontColor(this.isSubmit ?"#FFFFFFFF":"#66FFFFFF") 141 + .fontColor("#FFFFFF")
142 .borderRadius(4) 142 .borderRadius(4)
143 .fontSize(18) 143 .fontSize(18)
144 .textAlign(TextAlign.Center) 144 .textAlign(TextAlign.Center)
145 .fontWeight(FontWeight.Medium) 145 .fontWeight(FontWeight.Medium)
146 .margin({ top: 26 }) 146 .margin({ top: 26 })
147 .height(44) 147 .height(44)
148 - .backgroundColor(this.isSubmit ?"#ED2800":"#99ED2800") 148 + .backgroundColor("#ED2800")
149 .enabled(this.isSubmit ? true : false) 149 .enabled(this.isSubmit ? true : false)
  150 + .opacity(this.isSubmit ? 1: 0.6)
150 .onClick(() => { 151 .onClick(() => {
151 TrackingButton.click("changePhoneNumberPageConfirm",TrackConstants.PageName.Change_PhoneNum,TrackConstants.PageName.Change_PhoneNum) 152 TrackingButton.click("changePhoneNumberPageConfirm",TrackConstants.PageName.Change_PhoneNum,TrackConstants.PageName.Change_PhoneNum)
152 this.changeBindPhone() 153 this.changeBindPhone()
@@ -60,15 +60,16 @@ struct ForgetPasswordPage { @@ -60,15 +60,16 @@ struct ForgetPasswordPage {
60 Row() { 60 Row() {
61 Text("确认") 61 Text("确认")
62 .layoutWeight(1) 62 .layoutWeight(1)
63 - .fontColor(this.isSubmit ?"#FFFFFFFF":"#66FFFFFF") 63 + .fontColor("#FFFFFF")
64 .borderRadius(4) 64 .borderRadius(4)
65 .fontSize(18) 65 .fontSize(18)
66 .textAlign(TextAlign.Center) 66 .textAlign(TextAlign.Center)
67 .fontWeight(FontWeight.Medium) 67 .fontWeight(FontWeight.Medium)
68 .margin({ top: 26 }) 68 .margin({ top: 26 })
69 .height(44) 69 .height(44)
70 - .backgroundColor(this.isSubmit ?"#ED2800":"#99ED2800") 70 + .backgroundColor("#ED2800")
71 .enabled(this.isSubmit ? true : false) 71 .enabled(this.isSubmit ? true : false)
  72 + .opacity(this.isSubmit ? 1: 0.6)
72 .onClick(() => { 73 .onClick(() => {
73 this.checkVerifyCode() 74 this.checkVerifyCode()
74 }) 75 })
@@ -161,7 +161,7 @@ struct LoginPage { @@ -161,7 +161,7 @@ struct LoginPage {
161 Row() { 161 Row() {
162 Text("登录") 162 Text("登录")
163 .borderRadius(4) 163 .borderRadius(4)
164 - .fontColor(this.isSubmit ? "#FFFFFFFF" : "#66FFFFFF") 164 + .fontColor("#FFFFFF")
165 .fontSize(`${this.calcHeight(31)}lpx`) 165 .fontSize(`${this.calcHeight(31)}lpx`)
166 .fontWeight(400) 166 .fontWeight(400)
167 .margin({ top: `${this.calcHeight(20)}` }) 167 .margin({ top: `${this.calcHeight(20)}` })
@@ -169,7 +169,8 @@ struct LoginPage { @@ -169,7 +169,8 @@ struct LoginPage {
169 .height(44) 169 .height(44)
170 .textAlign(TextAlign.Center) 170 .textAlign(TextAlign.Center)
171 .width("100%") 171 .width("100%")
172 - .backgroundColor(this.isSubmit ? "#FFED2800" : "#99ED2800") 172 + .backgroundColor("#ED2800")
  173 + .opacity(this.isSubmit ? 1: 0.6)
173 .onClick(() => { 174 .onClick(() => {
174 if (!this.isSubmit) { 175 if (!this.isSubmit) {
175 return 176 return
@@ -189,30 +189,30 @@ struct ModifyPasswordPage { @@ -189,30 +189,30 @@ struct ModifyPasswordPage {
189 .height(`${this.calcHeight(85)}lpx`) 189 .height(`${this.calcHeight(85)}lpx`)
190 .alignItems(HorizontalAlign.Start) 190 .alignItems(HorizontalAlign.Start)
191 191
  192 +
192 Row() { 193 Row() {
193 - Button( { type: ButtonType.Normal, stateEffect: true }){  
194 - Text("确认")  
195 - .fontColor("#fff")  
196 - .fontSize(`${this.calcHeight(35)}lpx`)  
197 - .lineHeight(`${this.calcHeight(50)}lpx`)  
198 - .opacity(this.btnStatus ?1:0.5)  
199 - }  
200 - .width('100%')  
201 - .height(`${this.calcHeight(80)}lpx`)  
202 - .backgroundColor(this.btnStatus ? '#ED2800' : '#99ED2800')  
203 - .enabled(this.btnStatus ?true:false)  
204 - .borderRadius('4vp') 194 + Text("确认")
  195 + .layoutWeight(1)
  196 + .fontColor("#FFFFFF")
  197 + .borderRadius(4)
  198 + .fontSize(18)
  199 + .textAlign(TextAlign.Center)
  200 + .fontWeight(FontWeight.Medium)
  201 + .margin({ top: 26 })
  202 + .height(44)
  203 + .backgroundColor("#ED2800")
  204 + .enabled(this.btnStatus ? true : false)
  205 + .opacity(this.btnStatus ? 1: 0.6)
205 .onClick(() => { 206 .onClick(() => {
206 if(this.btnStatus){ 207 if(this.btnStatus){
207 TrackingButton.click("changePasswordPageConfirm",TrackConstants.PageName.Change_Passwd,TrackConstants.PageName.Change_Passwd) 208 TrackingButton.click("changePasswordPageConfirm",TrackConstants.PageName.Change_Passwd,TrackConstants.PageName.Change_Passwd)
208 this.submit() 209 this.submit()
209 } 210 }
210 }) 211 })
211 - } 212 + }.width('100%')
212 .padding({top:`${this.calcHeight(25)}lpx`}) 213 .padding({top:`${this.calcHeight(25)}lpx`})
213 .alignItems(VerticalAlign.Center) 214 .alignItems(VerticalAlign.Center)
214 .width('100%') 215 .width('100%')
215 - .height(`${this.calcHeight(120)}lpx`)  
216 216
217 Column() { 217 Column() {
218 Text("忘记密码").fontSize(12).maxLines(3).fontColor(0x999999).padding({top:`${this.calcHeight(10)}lpx`}) 218 Text("忘记密码").fontSize(12).maxLines(3).fontColor(0x999999).padding({top:`${this.calcHeight(10)}lpx`})
@@ -290,21 +290,23 @@ export struct SettingPasswordPage { @@ -290,21 +290,23 @@ export struct SettingPasswordPage {
290 // 按钮 290 // 按钮
291 @Builder getButtonCell(item: AccoutPageDataModel) { 291 @Builder getButtonCell(item: AccoutPageDataModel) {
292 Row() { 292 Row() {
293 - Button(item.compButtonTitle, { type: ButtonType.Normal, stateEffect: true })  
294 - .width('100%')  
295 - .height('80lpx')  
296 - .backgroundColor(this.btnStatus ? '#da3e22' : '#e5856d')  
297 - .enabled(this.btnStatus ?true:false)  
298 - .fontColor('#fff')  
299 - .borderRadius('4vp') 293 + Text(item.compButtonTitle)
  294 + .layoutWeight(1)
  295 + .fontColor("#FFFFFF")
  296 + .borderRadius(4)
  297 + .fontSize(18)
  298 + .textAlign(TextAlign.Center)
  299 + .fontWeight(FontWeight.Medium)
  300 + .margin({ top: 26 })
  301 + .height(44)
  302 + .backgroundColor("#ED2800")
  303 + .enabled(this.btnStatus ? true : false)
  304 + .opacity(this.btnStatus ? 1: 0.6)
300 .onClick(() => { 305 .onClick(() => {
301 this.buttonClick() 306 this.buttonClick()
302 }) 307 })
303 - }  
304 - .padding({top:'25lpx'})  
305 - .alignItems(VerticalAlign.Center) 308 + }.padding({top:'25lpx'})
306 .width('100%') 309 .width('100%')
307 - .height('120lpx')  
308 } 310 }
309 311
310 // 标题 312 // 标题
1 import AbilityConstant from '@ohos.app.ability.AbilityConstant'; 1 import AbilityConstant from '@ohos.app.ability.AbilityConstant';
2 import app from '@system.app'; 2 import app from '@system.app';
3 -import hilog from '@ohos.hilog';  
4 import UIAbility from '@ohos.app.ability.UIAbility'; 3 import UIAbility from '@ohos.app.ability.UIAbility';
5 import Want from '@ohos.app.ability.Want'; 4 import Want from '@ohos.app.ability.Want';
6 import window from '@ohos.window'; 5 import window from '@ohos.window';
7 import { BusinessError } from '@ohos.base'; 6 import { BusinessError } from '@ohos.base';
8 -import { DeviceUtil, EmitterEventId, EmitterUtils, WindowModel } from 'wdKit'; 7 +import { DeviceUtil, EmitterEventId, EmitterUtils, Logger, WindowModel } from 'wdKit';
9 import { ConfigurationConstant } from '@kit.AbilityKit'; 8 import { ConfigurationConstant } from '@kit.AbilityKit';
10 import { StartupManager } from '../startupmanager/StartupManager'; 9 import { StartupManager } from '../startupmanager/StartupManager';
11 -import { UIContext } from '@ohos.arkui.UIContext';  
12 10
13 let floatWindowClass: window.Window | null = null; 11 let floatWindowClass: window.Window | null = null;
  12 +const TAG = 'EntryAbility'
14 13
15 export default class EntryAbility extends UIAbility { 14 export default class EntryAbility extends UIAbility {
16 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 15 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
17 StartupManager.sharedInstance().appOnCreate(want, launchParam, this.context) 16 StartupManager.sharedInstance().appOnCreate(want, launchParam, this.context)
18 - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 17 + Logger.info(TAG, 'Ability onCreate');
19 18
20 // 还没深色模式需求,暂直接不跟随系统。 19 // 还没深色模式需求,暂直接不跟随系统。
21 this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT); 20 this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_LIGHT);
@@ -32,13 +31,13 @@ export default class EntryAbility extends UIAbility { @@ -32,13 +31,13 @@ export default class EntryAbility extends UIAbility {
32 } 31 }
33 32
34 onDestroy(): void { 33 onDestroy(): void {
35 - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); 34 + Logger.info(TAG, 'Ability onDestroy');
36 StartupManager.sharedInstance().appOnDestory() 35 StartupManager.sharedInstance().appOnDestory()
37 } 36 }
38 37
39 onWindowStageCreate(windowStage: window.WindowStage): void { 38 onWindowStageCreate(windowStage: window.WindowStage): void {
40 // Main window is created, set main page for this ability 39 // Main window is created, set main page for this ability
41 - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 40 + Logger.info(TAG, 'Ability onWindowStageCreate');
42 WindowModel.shared.setWindowStage(windowStage); 41 WindowModel.shared.setWindowStage(windowStage);
43 // 2. 获取布局避让遮挡的区域 42 // 2. 获取布局避让遮挡的区域
44 const windowClass: window.Window = windowStage.getMainWindowSync(); // 获取应用主窗口 43 const windowClass: window.Window = windowStage.getMainWindowSync(); // 获取应用主窗口
@@ -57,72 +56,50 @@ export default class EntryAbility extends UIAbility { @@ -57,72 +56,50 @@ export default class EntryAbility extends UIAbility {
57 // 音频悬浮窗初始移动位置604为ui高度 56 // 音频悬浮窗初始移动位置604为ui高度
58 let initMoveY = vp2px(604) 57 let initMoveY = vp2px(604)
59 58
60 -  
61 - // 在普通phone/折叠屏/tablet设备上以沉浸式(全屏)启动  
62 - if (DeviceUtil.isPhone() || DeviceUtil.isTablet()) {  
63 - // 设置窗口的布局是否为沉浸式布局  
64 - // 沉浸式布局是指布局不避让状态栏与导航栏,组件可能产生与其重叠的情况。  
65 - // 非沉浸式布局是指布局避让状态栏与导航栏,组件不会与其重叠。  
66 - // windowClass.setWindowLayoutFullScreen(true)  
67 - // 设置窗口全屏模式时窗口内导航栏、状态栏的属性  
68 - // windowClass.setWindowSystemBarProperties({  
69 - // statusBarContentColor: "#FFFFFF"  
70 - // })  
71 -  
72 - // 设置启动时窗口的显示方向属性,  
73 - // 普通phone以PORTRAIT/竖屏显示模式启动  
74 - // 折叠屏和tablet是以AUTO_ROTATION_RESTRICTED/受开关控制的自动旋转模式启动  
75 - WindowModel.shared.setPreferredOrientation(window.Orientation.PORTRAIT)  
76 - .then(() => {  
77 - hilog.info(0x0000, 'testTag', 'setPreferredOrientation Succeeded');  
78 - })  
79 - .catch((err: Error) => {  
80 - hilog.error(0x0000, 'testTag',  
81 - `setPreferredOrientation catch, error error.name : ${err.name}, error.message:${err.message}`);  
82 - })  
83 - } 59 + this.onWindowSetup(windowClass)
84 60
85 //../../../../../../features/wdLogin/src/main/ets/pages/launchPage/LaunchPage 61 //../../../../../../features/wdLogin/src/main/ets/pages/launchPage/LaunchPage
86 windowStage.loadContent('pages/launchPage/LaunchPage', (err, data) => { 62 windowStage.loadContent('pages/launchPage/LaunchPage', (err, data) => {
87 if (err.code) { 63 if (err.code) {
88 - hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 64 + Logger.error(TAG, 'Failed to load the content. Cause: ' + JSON.stringify(err) ?? '');
89 return; 65 return;
90 } 66 }
91 - hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); 67 + Logger.info(TAG, 'Succeeded in loading the content. Data: ' + JSON.stringify(data) ?? '');
92 }); 68 });
93 // 1.创建悬浮窗 69 // 1.创建悬浮窗
94 windowStage.createSubWindow('subWindow', (err: BusinessError, data) => { 70 windowStage.createSubWindow('subWindow', (err: BusinessError, data) => {
95 let errCode: number = err.code; 71 let errCode: number = err.code;
96 if (errCode) { 72 if (errCode) {
97 - console.error('floatWindowClass Failed to create the subwindow. Cause: ' + JSON.stringify(err)); 73 + Logger.error('floatWindowClass Failed to create the subwindow. Cause: ' + JSON.stringify(err));
98 return; 74 return;
99 } 75 }
100 - console.info('floatWindowClass Succeeded in creating the subwindow. Data: ' + JSON.stringify(data)); 76 + Logger.info('floatWindowClass Succeeded in creating the subwindow. Data: ' + JSON.stringify(data));
101 floatWindowClass = data; 77 floatWindowClass = data;
102 AppStorage.setOrCreate('floatWindowClass', floatWindowClass); 78 AppStorage.setOrCreate('floatWindowClass', floatWindowClass);
103 // 2.悬浮窗窗口创建成功后,设置悬浮窗的位置、大小及相关属性等。 79 // 2.悬浮窗窗口创建成功后,设置悬浮窗的位置、大小及相关属性等。
104 floatWindowClass.moveWindowTo(0, initMoveY, (err: BusinessError) => { 80 floatWindowClass.moveWindowTo(0, initMoveY, (err: BusinessError) => {
105 let errCode: number = err.code; 81 let errCode: number = err.code;
106 if (errCode) { 82 if (errCode) {
107 - console.error('floatWindowClass Failed to move the window. Cause:' + JSON.stringify(err)); 83 + Logger.error('floatWindowClass Failed to move the window. Cause:' + JSON.stringify(err));
108 return; 84 return;
109 } 85 }
110 - console.info('floatWindowClass Succeeded in moving the window.'); 86 + Logger.info('floatWindowClass Succeeded in moving the window.');
111 }); 87 });
112 // 3.为悬浮窗加载对应的目标页面。 88 // 3.为悬浮窗加载对应的目标页面。
113 floatWindowClass.setUIContent("pages/view/AudioComponent", (err: BusinessError) => { 89 floatWindowClass.setUIContent("pages/view/AudioComponent", (err: BusinessError) => {
114 let errCode: number = err.code; 90 let errCode: number = err.code;
115 if (errCode) { 91 if (errCode) {
116 - console.error('floatWindowClass Failed to load the content. Cause:' + JSON.stringify(err)); 92 + Logger.error('floatWindowClass Failed to load the content. Cause:' + JSON.stringify(err));
117 return; 93 return;
118 } 94 }
119 - console.info('floatWindowClass Succeeded in loading the content.'); 95 + Logger.info('floatWindowClass Succeeded in loading the content.');
120 let color: string = 'rgba(0,0,0,0)'; 96 let color: string = 'rgba(0,0,0,0)';
121 try { 97 try {
122 (floatWindowClass as window.Window).setWindowBackgroundColor(color); 98 (floatWindowClass as window.Window).setWindowBackgroundColor(color);
123 } catch (exception) { 99 } catch (exception) {
124 - console.error('Failed to set the background color. Cause: ' + JSON.stringify(exception));  
125 - }; 100 + Logger.error('Failed to set the background color. Cause: ' + JSON.stringify(exception));
  101 + }
  102 + ;
126 }); 103 });
127 104
128 floatWindowClass.on('windowEvent', (data) => { 105 floatWindowClass.on('windowEvent', (data) => {
@@ -132,33 +109,68 @@ export default class EntryAbility extends UIAbility { @@ -132,33 +109,68 @@ export default class EntryAbility extends UIAbility {
132 }); 109 });
133 } 110 }
134 111
  112 + public async onWindowSetup(mainWindow: window.Window) {
  113 + // 在普通phone/折叠屏/tablet设备上以沉浸式(全屏)启动
  114 + if (DeviceUtil.isPhone() || DeviceUtil.isTablet()) {
  115 + // 设置窗口的布局是否为沉浸式布局
  116 + // 沉浸式布局是指布局不避让状态栏与导航栏,组件可能产生与其重叠的情况。
  117 + // 非沉浸式布局是指布局避让状态栏与导航栏,,组件不会与其重叠
  118 + mainWindow.setWindowLayoutFullScreen(true)
  119 + //设置窗口全屏模式时窗口内导航栏、状态栏的属性
  120 + mainWindow.setWindowSystemBarProperties({
  121 + //statusBarColor:'#000000'
  122 + statusBarContentColor: '#FFFFFF'
  123 + })
  124 + mainWindow.setSpecificSystemBarEnabled('status', true)
  125 +
  126 + // 设置启动时窗口的显示方向属性,
  127 + // 普通phone以PORTRAIT/竖屏显示模式启动
  128 + // 折叠屏和tablet是以AUTO_ROTATION_RESTRICTED/受开关控制的自动旋转模式启动
  129 + WindowModel.shared.setPreferredOrientation(window.Orientation.PORTRAIT)
  130 + .then(() => {
  131 + Logger.info(TAG, 'setPreferredOrientation Succeeded');
  132 + })
  133 + .catch((err: Error) => {
  134 + Logger.info(TAG,
  135 + `setPreferredOrientation catch, error error.name : ${err.name}, error.message:${err.message}`);
  136 + })
  137 + } else if (DeviceUtil.is2in1()) {
  138 + // 2in1(PC)设备不支持旋转(无横竖屏模式),会以默认窗口(非全屏)显示模式启动Logger.info(TAG,`start at 2in1 window device )
  139 + Logger.info(TAG, 'start at 2in1 window device')
  140 + } else {
  141 + // 轻量级智能穿戴/lite wearable device
  142 + Logger.info(TAG, 'start at other type device')
  143 + }
  144 +
  145 + }
  146 +
135 destroyFloatWindow() { 147 destroyFloatWindow() {
136 (floatWindowClass as window.Window).destroyWindow((err: BusinessError) => { 148 (floatWindowClass as window.Window).destroyWindow((err: BusinessError) => {
137 let errCode: number = err.code; 149 let errCode: number = err.code;
138 if (errCode) { 150 if (errCode) {
139 - console.error('floatWindowClass Failed to destroy the window. Cause: ' + JSON.stringify(err)); 151 + Logger.error('floatWindowClass Failed to destroy the window. Cause: ' + JSON.stringify(err));
140 return; 152 return;
141 } 153 }
142 - console.info('floatWindowClass Succeeded in destroying the window.'); 154 + Logger.info('floatWindowClass Succeeded in destroying the window.');
143 }); 155 });
144 } 156 }
145 157
146 onWindowStageDestroy(): void { 158 onWindowStageDestroy(): void {
147 // Main window is destroyed, release UI related resources 159 // Main window is destroyed, release UI related resources
148 this.destroyFloatWindow() 160 this.destroyFloatWindow()
149 - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); 161 + Logger.info(TAG, 'Ability onWindowStageDestroy');
150 } 162 }
151 163
152 onForeground(): void { 164 onForeground(): void {
153 // Ability has brought to foreground 165 // Ability has brought to foreground
154 - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); 166 + Logger.info(TAG, 'Ability onForeground');
155 167
156 EmitterUtils.sendEmptyEvent(EmitterEventId.APP_ENTER_FOREGROUD) 168 EmitterUtils.sendEmptyEvent(EmitterEventId.APP_ENTER_FOREGROUD)
157 } 169 }
158 170
159 onBackground(): void { 171 onBackground(): void {
160 // Ability has back to background 172 // Ability has back to background
161 - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); 173 + Logger.info(TAG, 'Ability onBackground');
162 174
163 EmitterUtils.sendEmptyEvent(EmitterEventId.APP_ENTER_BACKGROUD) 175 EmitterUtils.sendEmptyEvent(EmitterEventId.APP_ENTER_BACKGROUD)
164 } 176 }
@@ -23,7 +23,7 @@ struct MorningEveningPaperPage { @@ -23,7 +23,7 @@ struct MorningEveningPaperPage {
23 PageTransitionEnter({ type: RouteType.Push, duration: 300 }) 23 PageTransitionEnter({ type: RouteType.Push, duration: 300 })
24 .slide(SlideEffect.Bottom).onEnter((type: RouteType, progress: number) => { 24 .slide(SlideEffect.Bottom).onEnter((type: RouteType, progress: number) => {
25 if (progress >= 0.99) { 25 if (progress >= 0.99) {
26 - WindowModel.shared.setWindowLayoutFullScreen(true) 26 + // WindowModel.shared.setWindowLayoutFullScreen(true)
27 WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff', }) 27 WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff', })
28 } 28 }
29 }) 29 })
@@ -43,14 +43,14 @@ struct MorningEveningPaperPage { @@ -43,14 +43,14 @@ struct MorningEveningPaperPage {
43 onPageShow() { 43 onPageShow() {
44 Logger.info(TAG, 'onPageShow'); 44 Logger.info(TAG, 'onPageShow');
45 if (this.isPageShow) { 45 if (this.isPageShow) {
46 - WindowModel.shared.setWindowLayoutFullScreen(true) 46 + // WindowModel.shared.setWindowLayoutFullScreen(true)
47 WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff', }) 47 WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff', })
48 } 48 }
49 this.pageShowTime = DateTimeUtils.getTimeStamp() 49 this.pageShowTime = DateTimeUtils.getTimeStamp()
50 } 50 }
51 51
52 onPageHide() { 52 onPageHide() {
53 - WindowModel.shared.setWindowLayoutFullScreen(false) 53 + // WindowModel.shared.setWindowLayoutFullScreen(false)
54 WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', }) 54 WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', })
55 this.isPageShow = true 55 this.isPageShow = true
56 Logger.info(TAG, 'onPageHide'); 56 Logger.info(TAG, 'onPageHide');
@@ -48,7 +48,6 @@ struct MultiPictureDetailPage { @@ -48,7 +48,6 @@ struct MultiPictureDetailPage {
48 } 48 }
49 49
50 aboutToAppear() { 50 aboutToAppear() {
51 - this.openFullScreen()  
52 51
53 Logger.info(TAG, 'aboutToDisappear'); 52 Logger.info(TAG, 'aboutToDisappear');
54 53
@@ -68,13 +67,11 @@ struct MultiPictureDetailPage { @@ -68,13 +67,11 @@ struct MultiPictureDetailPage {
68 67
69 aboutToDisappear(): void { 68 aboutToDisappear(): void {
70 console.log(TAG, 'aboutToDisappear') 69 console.log(TAG, 'aboutToDisappear')
71 - this.closeFullScreen()  
72 } 70 }
73 71
74 onPageShow(): void { 72 onPageShow(): void {
75 console.log(TAG, 'onPageShow') 73 console.log(TAG, 'onPageShow')
76 this.pageShowTime = DateTimeUtils.getTimeStamp() 74 this.pageShowTime = DateTimeUtils.getTimeStamp()
77 - this.openFullScreen()  
78 75
79 } 76 }
80 77
@@ -84,25 +81,7 @@ struct MultiPictureDetailPage { @@ -84,25 +81,7 @@ struct MultiPictureDetailPage {
84 let duration = 0 81 let duration = 0
85 duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000) 82 duration = Math.floor((this.pageHideTime - this.pageShowTime)/1000)
86 TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Atlas_Detail,TrackConstants.PageName.Atlas_Detail,duration) 83 TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Atlas_Detail,TrackConstants.PageName.Atlas_Detail,duration)
87 - this.closeFullScreen()  
88 } 84 }
89 85
90 - /**  
91 - * 开启沉浸式  
92 - * TODO:颜色待根据业务接口修改  
93 - */  
94 - openFullScreen() {  
95 - WindowModel.shared.setWindowLayoutFullScreen(true)  
96 - WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff', })  
97 - }  
98 -  
99 - /**  
100 - * 关闭沉浸式  
101 - * TODO:颜色待根据业务接口修改  
102 - */  
103 - closeFullScreen() {  
104 - WindowModel.shared.setWindowLayoutFullScreen(false)  
105 - WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', })  
106 - }  
107 86
108 } 87 }
@@ -7,6 +7,7 @@ import LaunchDataModel, { defaultLaunchModel } from '../viewModel/LaunchDataMode @@ -7,6 +7,7 @@ import LaunchDataModel, { defaultLaunchModel } from '../viewModel/LaunchDataMode
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 import { ContentDTO } from 'wdBean/Index';
  10 +import { Core } from '@ohos/hypium';
10 11
11 12
12 @Entry 13 @Entry
@@ -62,7 +63,7 @@ struct LaunchAdvertisingPage { @@ -62,7 +63,7 @@ struct LaunchAdvertisingPage {
62 }else { 63 }else {
63 //显示图片 64 //显示图片
64 Image(this.defaultModel.bootScreenUrl) 65 Image(this.defaultModel.bootScreenUrl)
65 - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) 66 + // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
66 .width('100%') 67 .width('100%')
67 .height('100%') 68 .height('100%')
68 } 69 }
@@ -74,11 +75,10 @@ struct LaunchAdvertisingPage { @@ -74,11 +75,10 @@ struct LaunchAdvertisingPage {
74 bottom: 0 75 bottom: 0
75 }) 76 })
76 77
77 -  
78 Stack(){ 78 Stack(){
79 Column(){ 79 Column(){
80 Row(){ 80 Row(){
81 - if (this.defaultModel.isAd === '1') { 81 + if (this.defaultModel.isAd == '1') {
82 Text('广告') 82 Text('广告')
83 .fontColor(Color.White) 83 .fontColor(Color.White)
84 .textAlign(TextAlign.Center) 84 .textAlign(TextAlign.Center)
@@ -108,7 +108,7 @@ struct LaunchAdvertisingPage { @@ -108,7 +108,7 @@ struct LaunchAdvertisingPage {
108 this.trackingLaunchJumpOver() 108 this.trackingLaunchJumpOver()
109 }).margin({right:16}) 109 }).margin({right:16})
110 110
111 - }.margin({top:10}).width('100%').height('56lpx') 111 + }.margin({top:50}).width('100%').height('56lpx')
112 112
113 Blank() 113 Blank()
114 114
@@ -132,18 +132,21 @@ struct LaunchAdvertisingPage { @@ -132,18 +132,21 @@ struct LaunchAdvertisingPage {
132 .margin({ 132 .margin({
133 bottom: '51lpx' 133 bottom: '51lpx'
134 }) 134 })
  135 + .borderWidth(1)
  136 + .borderColor(Color.White)
135 .backgroundColor('#80000000') 137 .backgroundColor('#80000000')
136 .onClick(()=>{ 138 .onClick(()=>{
137 this.action() 139 this.action()
138 }) 140 })
139 } 141 }
140 - if(this.defaultModel.screenType === '1') { 142 + if(this.defaultModel.screenType == '1') {
141 Column(){ 143 Column(){
142 Image($r('app.media.LaunchPage_logo')) 144 Image($r('app.media.LaunchPage_logo'))
143 .width('278lpx') 145 .width('278lpx')
144 .height('154lpx') 146 .height('154lpx')
145 .margin({top:20}) 147 .margin({top:20})
146 - }.width('100%').height('16%').backgroundColor(Color.White).expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) 148 + }.width('100%').height('16%').backgroundColor(Color.White)
  149 + // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
147 } 150 }
148 } 151 }
149 .width('100%') 152 .width('100%')
@@ -157,7 +160,7 @@ struct LaunchAdvertisingPage { @@ -157,7 +160,7 @@ struct LaunchAdvertisingPage {
157 .height('100%') 160 .height('100%')
158 .margin({top:'0'}) 161 .margin({top:'0'})
159 } 162 }
160 - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) 163 + // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
161 .width('100%') 164 .width('100%')
162 .height('100%') 165 .height('100%')
163 .backgroundColor(Color.White) 166 .backgroundColor(Color.White)
@@ -176,7 +179,7 @@ struct LaunchAdvertisingPage { @@ -176,7 +179,7 @@ struct LaunchAdvertisingPage {
176 if (this.defaultModel.openType == '2') { 179 if (this.defaultModel.openType == '2') {
177 //端外打开 180 //端外打开
178 ProcessUtils.jumpExternalWebPage(this.defaultModel.linkUrl) 181 ProcessUtils.jumpExternalWebPage(this.defaultModel.linkUrl)
179 - }else { 182 + }else if(this.defaultModel.openType == '1'){
180 //端内打开 183 //端内打开
181 ProcessUtils.gotoDefaultWebPage(this.defaultModel.linkUrl) 184 ProcessUtils.gotoDefaultWebPage(this.defaultModel.linkUrl)
182 } 185 }
@@ -212,7 +215,7 @@ struct LaunchAdvertisingPage { @@ -212,7 +215,7 @@ struct LaunchAdvertisingPage {
212 this.defaultModel.screenName = dataModel.launchAdInfo[0].matInfo.advTitle 215 this.defaultModel.screenName = dataModel.launchAdInfo[0].matInfo.advTitle
213 this.defaultModel.durations = dataModel.launchAdInfo[0].displayDuration 216 this.defaultModel.durations = dataModel.launchAdInfo[0].displayDuration
214 this.defaultModel.linkUrl = dataModel.launchAdInfo[0].matInfo.linkUrl 217 this.defaultModel.linkUrl = dataModel.launchAdInfo[0].matInfo.linkUrl
215 - if (dataModel.launchAdInfo[0].matInfo.startStyle === '1') { 218 + if (dataModel.launchAdInfo[0].matInfo.startStyle == '1') {
216 this.defaultModel.screenType = '2' 219 this.defaultModel.screenType = '2'
217 }else { 220 }else {
218 this.defaultModel.screenType = '1' 221 this.defaultModel.screenType = '1'
@@ -222,6 +225,7 @@ struct LaunchAdvertisingPage { @@ -222,6 +225,7 @@ struct LaunchAdvertisingPage {
222 this.defaultModel.bootVideoUrl = dataModel.launchAdInfo[0].matInfo.matVideoUrl 225 this.defaultModel.bootVideoUrl = dataModel.launchAdInfo[0].matInfo.matVideoUrl
223 this.defaultModel.showType = dataModel.launchAdInfo[0].matInfo.matType 226 this.defaultModel.showType = dataModel.launchAdInfo[0].matInfo.matType
224 this.defaultModel.isAd = '1' 227 this.defaultModel.isAd = '1'
  228 + this.defaultModel.openType = dataModel.launchAdInfo[0].matInfo.openType
225 } 229 }
226 } 230 }
227 231
@@ -23,6 +23,7 @@ let storage = LocalStorage.getShared(); @@ -23,6 +23,7 @@ let storage = LocalStorage.getShared();
23 @Component 23 @Component
24 export struct BottomNavigationComponent { 24 export struct BottomNavigationComponent {
25 @Provide bottomRectHeight: number = 0 25 @Provide bottomRectHeight: number = 0
  26 + private bottomRectHeight1: string = AppStorage.get<number>('bottomSafeHeight') + 'px';
26 @Provide topRectHeight: number = 0 27 @Provide topRectHeight: number = 0
27 @Provide isLayoutFullScreen: boolean = false 28 @Provide isLayoutFullScreen: boolean = false
28 @Provide displayDirection: DisplayDirection = DisplayDirection.VERTICAL 29 @Provide displayDirection: DisplayDirection = DisplayDirection.VERTICAL
@@ -73,50 +74,51 @@ export struct BottomNavigationComponent { @@ -73,50 +74,51 @@ export struct BottomNavigationComponent {
73 } 74 }
74 75
75 build() { 76 build() {
76 - Tabs({ barPosition: BarPosition.End, index: this.currentNavIndex, controller: this.navController }) {  
77 - ForEach(this.bottomNavList, (navItem: BottomNavDTO, index: number) => {  
78 - TabContent() {  
79 - if (CompUtils.isMine(navItem)) {  
80 - // 我的页面组件数据列表  
81 - MinePageComponent({ isMinePage: this.currentNavIndex === this.bottomNavList.length - 1 })  
82 - } else if (navItem.name === '视频') {  
83 - // 视频频道,包含视频和直播  
84 - VideoChannelPage({  
85 - topNavList: navItem.topNavChannelList.filter(item => item.channelId != 2073),  
86 - _currentNavIndex: $currentNavIndex,  
87 - autoRefresh: this.autoRefresh  
88 - })  
89 - } else {  
90 - TopNavigationComponentNew({  
91 - groupId: navItem.id,  
92 - topNavList: navItem.topNavChannelList.filter(item => item.channelId != 2073),  
93 - _currentNavIndex: $currentNavIndex,  
94 - bottomNavIndex: index,  
95 - currentBottomNavName: navItem.name,  
96 - assignChannel: this.assignChannel,  
97 - autoRefresh: this.autoRefresh  
98 - }) 77 + Column() {
  78 + Tabs({ barPosition: BarPosition.End, index: this.currentNavIndex, controller: this.navController }) {
  79 + ForEach(this.bottomNavList, (navItem: BottomNavDTO, index: number) => {
  80 + TabContent() {
  81 + if (CompUtils.isMine(navItem)) {
  82 + // 我的页面组件数据列表
  83 + MinePageComponent({ isMinePage: this.currentNavIndex === this.bottomNavList.length - 1 })
  84 + } else if (navItem.name === '视频') {
  85 + // 视频频道,包含视频和直播
  86 + VideoChannelPage({
  87 + topNavList: navItem.topNavChannelList.filter(item => item.channelId != 2073),
  88 + _currentNavIndex: $currentNavIndex,
  89 + autoRefresh: this.autoRefresh
  90 + })
  91 + } else {
  92 + TopNavigationComponentNew({
  93 + groupId: navItem.id,
  94 + topNavList: navItem.topNavChannelList.filter(item => item.channelId != 2073),
  95 + _currentNavIndex: $currentNavIndex,
  96 + bottomNavIndex: index,
  97 + currentBottomNavName: navItem.name,
  98 + assignChannel: this.assignChannel,
  99 + autoRefresh: this.autoRefresh
  100 + })
  101 + }
99 } 102 }
100 - }  
101 - .tabBar(this.tabBarBuilder(navItem, index)) 103 + .tabBar(this.tabBarBuilder(navItem, index))
102 104
103 - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])  
104 - }); 105 + // .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])
  106 + });
105 107
106 - }  
107 - .zIndex(10)  
108 - .scrollable(false)  
109 - .animationDuration(0)  
110 - .barHeight(this.displayDirection === DisplayDirection.VERTICAL ? $r('app.float.bottom_navigation_barHeight') :  
111 - 0.001)  
112 - .barMode(BarMode.Fixed)  
113 - .barBackgroundColor(this.barBackgroundColor)  
114 - // 备注:鸿蒙目前只有修改三线导航背景方法,对于全面屏导航条手机需要设置背景色并使其扩散到导航区域  
115 - .backgroundColor(this.barBackgroundColor)  
116 - .expandSafeArea([SafeAreaType.SYSTEM])  
117 -  
118 - // .padding({ bottom: this.bottomRectHeight + 'px', top: this.topRectHeight + 'px' }) // 此处margin具体数值在实际中应与导航条区域高度保持一致 108 + }
  109 + .zIndex(10)
  110 + .scrollable(false)
  111 + .animationDuration(0)
  112 + .barHeight(this.displayDirection === DisplayDirection.VERTICAL ? $r('app.float.bottom_navigation_barHeight') :
  113 + 0.001)
  114 + .barMode(BarMode.Fixed)
  115 + .barBackgroundColor(this.barBackgroundColor)
  116 + // 备注:鸿蒙目前只有修改三线导航背景方法,对于全面屏导航条手机需要设置背景色并使其扩散到导航区域
  117 + .backgroundColor(this.barBackgroundColor)
  118 + .layoutWeight(1)
119 119
  120 + Blank().width('100%').height(this.bottomRectHeight1).backgroundColor(this.barBackgroundColor)
  121 + }.height('100%').width('100%')
120 } 122 }
121 123
122 @Builder 124 @Builder
1 import { insightIntent, InsightIntentExecutor } from '@kit.AbilityKit'; 1 import { insightIntent, InsightIntentExecutor } from '@kit.AbilityKit';
2 import { window } from '@kit.ArkUI'; 2 import { window } from '@kit.ArkUI';
3 import { BusinessError } from '@kit.BasicServicesKit'; 3 import { BusinessError } from '@kit.BasicServicesKit';
  4 +import { NetworkUtil, SPHelper, ToastUtils } from 'wdKit';
4 import { ProcessUtils } from 'wdRouter'; 5 import { ProcessUtils } from 'wdRouter';
  6 +import DailyPaperTopicModel from 'wdComponent/src/main/ets/model/DailyPaperTopicModel'
  7 +
5 /** 8 /**
6 * 意图调用 9 * 意图调用
7 */ 10 */
@@ -19,7 +22,7 @@ export default class InsightIntentExecutorImpl extends InsightIntentExecutor { @@ -19,7 +22,7 @@ export default class InsightIntentExecutorImpl extends InsightIntentExecutor {
19 */ 22 */
20 onExecuteInUIAbilityForegroundMode(name: string, param: Record<string, Object>, pageLoader: window.WindowStage): 23 onExecuteInUIAbilityForegroundMode(name: string, param: Record<string, Object>, pageLoader: window.WindowStage):
21 Promise<insightIntent.ExecuteResult> { 24 Promise<insightIntent.ExecuteResult> {
22 - console.log('yzl onExecuteInUIAbilityForegroundMode',name,JSON.stringify(param)) 25 + console.log('yzl onExecuteInUIAbilityForegroundMode', name, JSON.stringify(param))
23 // 根据意图名称分发处理逻辑 26 // 根据意图名称分发处理逻辑
24 switch (name) { 27 switch (name) {
25 case InsightIntentExecutorImpl.ViewBlog: 28 case InsightIntentExecutorImpl.ViewBlog:
@@ -36,19 +39,19 @@ export default class InsightIntentExecutorImpl extends InsightIntentExecutor { @@ -36,19 +39,19 @@ export default class InsightIntentExecutorImpl extends InsightIntentExecutor {
36 } 39 }
37 } as insightIntent.ExecuteResult) 40 } as insightIntent.ExecuteResult)
38 } 41 }
  42 +
39 /** 43 /**
40 * 实现习惯推荐功能 44 * 实现习惯推荐功能
41 * @param param 意图参数 45 * @param param 意图参数
42 * @param pageLoader 窗口 46 * @param pageLoader 窗口
43 */ 47 */
44 - private jumpToViewBlog(param: Record<string, Object>, pageLoader: window.WindowStage): Promise<insightIntent.ExecuteResult> {  
45 - console.log('yzl jumpToView',JSON.stringify(param)) 48 + private jumpToViewBlog(param: Record<string, Object>,
  49 + pageLoader: window.WindowStage): Promise<insightIntent.ExecuteResult> {
  50 + console.log('yzl jumpToView', JSON.stringify(param))
46 return new Promise((resolve, reject) => { 51 return new Promise((resolve, reject) => {
47 - // TODO 实现意图调用,loadContent的入参为歌曲落地页路径,例如:pages/SongPage  
48 // TODO 热启动是否切到主页 52 // TODO 热启动是否切到主页
49 pageLoader.loadContent('pages/MainPage') 53 pageLoader.loadContent('pages/MainPage')
50 .then(() => { 54 .then(() => {
51 -  
52 resolve({ 55 resolve({
53 code: 0, 56 code: 0,
54 result: { 57 result: {
@@ -72,12 +75,26 @@ export default class InsightIntentExecutorImpl extends InsightIntentExecutor { @@ -72,12 +75,26 @@ export default class InsightIntentExecutorImpl extends InsightIntentExecutor {
72 * @param param 意图参数 75 * @param param 意图参数
73 * @param pageLoader 窗口 76 * @param pageLoader 窗口
74 */ 77 */
75 - private jumpToViewColumnUpdate(param: Record<string, Object>, pageLoader: window.WindowStage): Promise<insightIntent.ExecuteResult> {  
76 - console.log('yzl jumpToViewColum',JSON.stringify(param)) 78 + private jumpToViewColumnUpdate(param: Record<string, Object>,
  79 + pageLoader: window.WindowStage): Promise<insightIntent.ExecuteResult> {
77 return new Promise((resolve, reject) => { 80 return new Promise((resolve, reject) => {
78 pageLoader.loadContent('pages/MainPage') 81 pageLoader.loadContent('pages/MainPage')
79 .then(() => { 82 .then(() => {
80 - ProcessUtils.gotoMorningEveningPaper() 83 + if (NetworkUtil.isNetConnected()) {
  84 + DailyPaperTopicModel.getDailyPaperTopic().then(dailyPaperTopicBean => {
  85 + if (dailyPaperTopicBean && dailyPaperTopicBean.id > 0) {
  86 + SPHelper.default.saveSync('dailyPaperTopicPageId', dailyPaperTopicBean.id);
  87 + ProcessUtils.gotoMorningEveningPaper() //跳转至早晚报页面
  88 + } else {
  89 + ToastUtils.showToast('暂无早晚报信息', 1000)
  90 + }
  91 + }).catch((err: string) => {
  92 + console.log('yzlerr',JSON.stringify(err))
  93 + ToastUtils.showToast('暂无早晚报信息', 1000)
  94 + })
  95 + } else {
  96 + ToastUtils.showToast('网络出小差了,请检查网络后重试', 1000)
  97 + }
81 resolve({ 98 resolve({
82 code: 0, 99 code: 0,
83 result: { 100 result: {