Showing
15 changed files
with
216 additions
and
65 deletions
| @@ -15,3 +15,5 @@ export { AssignChannelParam } from './src/main/ets/utils/HomeChannelUtils'; | @@ -15,3 +15,5 @@ export { AssignChannelParam } from './src/main/ets/utils/HomeChannelUtils'; | ||
| 15 | export { RouterJumpInterceptor, JumpInterceptorAction } from './src/main/ets/router/RouterJumpInterceptor' | 15 | export { RouterJumpInterceptor, JumpInterceptorAction } from './src/main/ets/router/RouterJumpInterceptor' |
| 16 | 16 | ||
| 17 | export { AppInnerLink } from './src/main/ets/utils/AppInnerLink' | 17 | export { AppInnerLink } from './src/main/ets/utils/AppInnerLink' |
| 18 | + | ||
| 19 | +export { ContentType } from './src/main/ets/common/ContentType' |
| 1 | +export enum ContentType { | ||
| 2 | + | ||
| 3 | + /// 不跳转 | ||
| 4 | + Unknown = 0, | ||
| 5 | + ///点播 | ||
| 6 | + Video = 1, | ||
| 7 | + | ||
| 8 | + ///直播 | ||
| 9 | + Live = 2, | ||
| 10 | + | ||
| 11 | + ///活动 | ||
| 12 | + Activity = 3, | ||
| 13 | + | ||
| 14 | + ///信息流广告 | ||
| 15 | + InfoflowAD = 4, | ||
| 16 | + | ||
| 17 | + ///专题 | ||
| 18 | + Subject = 5, | ||
| 19 | + | ||
| 20 | + ///链接 | ||
| 21 | + Link = 6, | ||
| 22 | + | ||
| 23 | + ///榜单 | ||
| 24 | + RankList = 7, | ||
| 25 | + | ||
| 26 | + /// 图文 | ||
| 27 | + ImageText = 8, | ||
| 28 | + /// 组图 | ||
| 29 | + Pictures = 9, | ||
| 30 | + | ||
| 31 | + /// H5新闻 (仅海外版存在,视界和中文端无此类型。中文端按照图文8类型+link) | ||
| 32 | + H5News = 10, | ||
| 33 | + /// 频道 | ||
| 34 | + Channel = 11, | ||
| 35 | + ///组件 | ||
| 36 | + Module = 12, | ||
| 37 | + ///音频 | ||
| 38 | + Audio = 13, | ||
| 39 | + ///动态图文 | ||
| 40 | + DynamicImageText = 14, | ||
| 41 | + | ||
| 42 | + ///动态视频 | ||
| 43 | + DynamicVideo = 15, | ||
| 44 | + | ||
| 45 | + ///问政留言 | ||
| 46 | + Ask = 16, | ||
| 47 | + | ||
| 48 | + /// 金刚位 | ||
| 49 | + KeyPosition = 30, | ||
| 50 | + | ||
| 51 | + /// 合集 | ||
| 52 | + Serials = 101, | ||
| 53 | + | ||
| 54 | + | ||
| 55 | + | ||
| 56 | +} |
| @@ -39,6 +39,8 @@ export interface ShareContentLink { | @@ -39,6 +39,8 @@ export interface ShareContentLink { | ||
| 39 | desc?: string | 39 | desc?: string |
| 40 | link: string | 40 | link: string |
| 41 | icon?: string | 41 | icon?: string |
| 42 | + deeplink: string // 根据内容详情,生成的深度链接 如:rmrbapp://rmrb.app/openwith?type=article&subType=h5_template_article&contentId=30000762651&relId=500000038702&skipType=1&relType=1 | ||
| 43 | + | ||
| 42 | } | 44 | } |
| 43 | 45 | ||
| 44 | export type ShareContent = ShareContentText | ShareContentImageAndText | ShareContentLink | 46 | export type ShareContent = ShareContentText | ShareContentImageAndText | ShareContentLink |
| @@ -6,6 +6,9 @@ import { AsyncCallback } from '@kit.BasicServicesKit'; | @@ -6,6 +6,9 @@ import { AsyncCallback } from '@kit.BasicServicesKit'; | ||
| 6 | import { common } from '@kit.AbilityKit'; | 6 | import { common } from '@kit.AbilityKit'; |
| 7 | import { systemShare } from '@kit.ShareKit'; | 7 | import { systemShare } from '@kit.ShareKit'; |
| 8 | import { uniformTypeDescriptor as utd } from '@kit.ArkData'; | 8 | import { uniformTypeDescriptor as utd } from '@kit.ArkData'; |
| 9 | +import { JSON } from '@kit.ArkTS'; | ||
| 10 | + | ||
| 11 | +const TAG = "WDSystemShare" | ||
| 9 | 12 | ||
| 10 | export class WDSystemShare implements WDShareInterface { | 13 | export class WDSystemShare implements WDShareInterface { |
| 11 | 14 | ||
| @@ -14,7 +17,8 @@ export class WDSystemShare implements WDShareInterface { | @@ -14,7 +17,8 @@ export class WDSystemShare implements WDShareInterface { | ||
| 14 | return new Promise((resolve, fail) => { | 17 | return new Promise((resolve, fail) => { |
| 15 | try { | 18 | try { |
| 16 | 19 | ||
| 17 | - let controller: systemShare.ShareController = new systemShare.ShareController(this.getShareData(content, contentType)); | 20 | + let data = this.getShareData(content, contentType) |
| 21 | + let controller: systemShare.ShareController = new systemShare.ShareController(data); | ||
| 18 | let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext | 22 | let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext |
| 19 | 23 | ||
| 20 | controller.on('dismiss', () => { | 24 | controller.on('dismiss', () => { |
| @@ -53,7 +57,7 @@ export class WDSystemShare implements WDShareInterface { | @@ -53,7 +57,7 @@ export class WDSystemShare implements WDShareInterface { | ||
| 53 | }); | 57 | }); |
| 54 | data.addRecord({ | 58 | data.addRecord({ |
| 55 | utd: utd.UniformDataType.PNG, | 59 | utd: utd.UniformDataType.PNG, |
| 56 | - uri: imageAndText.imgURI | 60 | + uri: imageAndText.imgURI // 这里必须为本地连接 |
| 57 | }); | 61 | }); |
| 58 | return data | 62 | return data |
| 59 | } | 63 | } |
| @@ -64,12 +68,26 @@ export class WDSystemShare implements WDShareInterface { | @@ -64,12 +68,26 @@ export class WDSystemShare implements WDShareInterface { | ||
| 64 | utd: utd.UniformDataType.PLAIN_TEXT, | 68 | utd: utd.UniformDataType.PLAIN_TEXT, |
| 65 | content: link.title | 69 | content: link.title |
| 66 | }); | 70 | }); |
| 71 | + let shareLink = this.generateShareLink(link) | ||
| 72 | + console.log("分享 shareLink ==> " + shareLink) | ||
| 67 | data.addRecord({ | 73 | data.addRecord({ |
| 68 | utd: utd.UniformDataType.HYPERLINK, | 74 | utd: utd.UniformDataType.HYPERLINK, |
| 69 | - uri: link.link | 75 | + // uri: link.link // SDK 设计 不能传这里 |
| 76 | + content: link.link | ||
| 70 | }); | 77 | }); |
| 71 | return data | 78 | return data |
| 72 | } | 79 | } |
| 73 | 80 | ||
| 74 | - | 81 | + generateShareLink(shareContent: ShareContentLink) { |
| 82 | + let link = "https://peopledailychinahosactivity.drcn.agconnect.link/?deeplink=" + encodeURI(shareContent.deeplink) | ||
| 83 | + link += "&harmonyos_deeplink=" + encodeURI(shareContent.deeplink) | ||
| 84 | + link += "&harmonyos_package_name=com.peopledailychina.hosactivity" | ||
| 85 | + link += "&harmonyos_fallback_url=" + encodeURI(shareContent.link) | ||
| 86 | + link += "&landing_page_type=1" | ||
| 87 | + // link += "&social_desc=" + encodeURIComponent(shareContent.desc || " ") | ||
| 88 | + // link += "&social_image=" + encodeURI(shareContent.icon || " ") | ||
| 89 | + // link += "&social_title=" + encodeURIComponent(shareContent.title) | ||
| 90 | + link += "®ion_id=0" | ||
| 91 | + return link | ||
| 92 | + } | ||
| 75 | } | 93 | } |
| @@ -93,7 +93,8 @@ export struct CardMediaInfo { | @@ -93,7 +93,8 @@ export struct CardMediaInfo { | ||
| 93 | .fontFamily('BebasNeue') | 93 | .fontFamily('BebasNeue') |
| 94 | 94 | ||
| 95 | } | 95 | } |
| 96 | - } .margin({ left: 68,top: 135}) | 96 | + } |
| 97 | + // .margin({ left: 68,top: 135}) | ||
| 97 | } else if (this.contentDTO.objectType === '2') { | 98 | } else if (this.contentDTO.objectType === '2') { |
| 98 | // liveInfo.liveState 直播新闻-直播状态 wait待开播running直播中end已结束cancel已取消paused暂停 | 99 | // liveInfo.liveState 直播新闻-直播状态 wait待开播running直播中end已结束cancel已取消paused暂停 |
| 99 | // 显示直播信息 | 100 | // 显示直播信息 |
| @@ -191,7 +192,7 @@ export struct CardMediaInfo { | @@ -191,7 +192,7 @@ export struct CardMediaInfo { | ||
| 191 | .mediaTextImgtype() | 192 | .mediaTextImgtype() |
| 192 | .fontFamily('BebasNeue') | 193 | .fontFamily('BebasNeue') |
| 193 | } | 194 | } |
| 194 | - .margin({ left: 80,top: 55}) | 195 | + // .margin({ left: 80,top: 55}) |
| 195 | 196 | ||
| 196 | } else if (this.contentDTO.objectType === '13') { | 197 | } else if (this.contentDTO.objectType === '13') { |
| 197 | // 显示音频信息 | 198 | // 显示音频信息 |
sight_harmony/features/wdComponent/src/main/ets/components/comment/view/QualityCommentsComponent.ets
| @@ -112,13 +112,12 @@ export struct QualityCommentsComponent { | @@ -112,13 +112,12 @@ export struct QualityCommentsComponent { | ||
| 112 | Image($r('app.media.comment_img_banner')).width('100%') | 112 | Image($r('app.media.comment_img_banner')).width('100%') |
| 113 | .height(283) | 113 | .height(283) |
| 114 | // .aspectRatio(375 / 283); | 114 | // .aspectRatio(375 / 283); |
| 115 | - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) | ||
| 116 | } | 115 | } |
| 117 | .onAreaChange((oldValue: Area, newValue: Area) => { | 116 | .onAreaChange((oldValue: Area, newValue: Area) => { |
| 118 | - if (Number(oldValue.globalPosition.y) == 0 && Number(newValue.globalPosition.y) > 30) { | ||
| 119 | - this.firstPositionY = Number(newValue.globalPosition.y) | ||
| 120 | - return | ||
| 121 | - } | 117 | + // if (Number(oldValue.globalPosition.y) == 0 && Number(newValue.globalPosition.y) > 30) { |
| 118 | + // this.firstPositionY = Number(newValue.globalPosition.y) | ||
| 119 | + // return | ||
| 120 | + // } | ||
| 122 | Logger.debug(TAG, "oldValue.globalPosition.y : " + oldValue.globalPosition.y) | 121 | Logger.debug(TAG, "oldValue.globalPosition.y : " + oldValue.globalPosition.y) |
| 123 | Logger.debug(TAG, | 122 | Logger.debug(TAG, |
| 124 | "newValue.globalPosition.y : " + newValue.globalPosition.y + `,this.topSafeHeight : ` + this.topSafeHeight) | 123 | "newValue.globalPosition.y : " + newValue.globalPosition.y + `,this.topSafeHeight : ` + this.topSafeHeight) |
| @@ -128,9 +127,16 @@ export struct QualityCommentsComponent { | @@ -128,9 +127,16 @@ export struct QualityCommentsComponent { | ||
| 128 | persent = 1 | 127 | persent = 1 |
| 129 | } | 128 | } |
| 130 | this.tileOpacity = persent | 129 | this.tileOpacity = persent |
| 131 | - | 130 | + this.topOpacityChange() |
| 132 | }) | 131 | }) |
| 133 | } | 132 | } |
| 133 | + topOpacityChange(){ | ||
| 134 | + if(this.tileOpacity > 0.8){ | ||
| 135 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#000000', }) | ||
| 136 | + }else{ | ||
| 137 | + WindowModel.shared.setWindowSystemBarProperties({ statusBarContentColor: '#ffffff'}) | ||
| 138 | + } | ||
| 139 | + } | ||
| 134 | 140 | ||
| 135 | /*透明导航栏*/ | 141 | /*透明导航栏*/ |
| 136 | @Builder | 142 | @Builder |
| @@ -164,16 +170,20 @@ export struct QualityCommentsComponent { | @@ -164,16 +170,20 @@ export struct QualityCommentsComponent { | ||
| 164 | @Builder | 170 | @Builder |
| 165 | TabbarNormal() { | 171 | TabbarNormal() { |
| 166 | Stack({ alignContent: Alignment.Top }) { | 172 | Stack({ alignContent: Alignment.Top }) { |
| 173 | + //// 默认显示的白色返回按钮 | ||
| 167 | Row() { | 174 | Row() { |
| 168 | - } | ||
| 169 | - .width('100%') | ||
| 170 | - .height(px2vp(this.topSafeHeight)) | ||
| 171 | - .backgroundColor($r('app.color.white')) | ||
| 172 | - .opacity(this.tileOpacity) | ||
| 173 | - .visibility(this.tileOpacity > 0 ? 0 : 1) | ||
| 174 | - .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP]) | 175 | + Image($r('app.media.icon_arrow_left_white')) |
| 176 | + .width(24).height(24) | ||
| 177 | + .objectFit(ImageFit.Auto) | ||
| 178 | + .margin({ left: 16, top: px2vp(this.topSafeHeight) + (44 - 24)/2}) | ||
| 179 | + .onClick(() => { | ||
| 180 | + router.back() | ||
| 181 | + }) | ||
| 182 | + }.width('100%').height(px2vp(this.topSafeHeight) + 44) | ||
| 183 | + .opacity(1- this.tileOpacity) | ||
| 175 | 184 | ||
| 176 | - Stack({ alignContent: Alignment.Start }) { | 185 | + //// 上滑显示的黑色按钮和标题 |
| 186 | + Stack({ alignContent: Alignment.Top }) { | ||
| 177 | Row() { | 187 | Row() { |
| 178 | Text('精选评论')// .height('42lpx') | 188 | Text('精选评论')// .height('42lpx') |
| 179 | .maxLines(1) | 189 | .maxLines(1) |
| @@ -182,25 +192,25 @@ export struct QualityCommentsComponent { | @@ -182,25 +192,25 @@ export struct QualityCommentsComponent { | ||
| 182 | .fontWeight(400) | 192 | .fontWeight(400) |
| 183 | .fontColor($r('app.color.color_222222')) | 193 | .fontColor($r('app.color.color_222222')) |
| 184 | .lineHeight('42lpx') | 194 | .lineHeight('42lpx') |
| 185 | - .visibility(this.tileOpacity < 0.8 ? 1 : 0) | ||
| 186 | } | 195 | } |
| 187 | - .height(44) | ||
| 188 | - .width('100%') | 196 | + .height(44).width('100%') |
| 189 | .justifyContent(FlexAlign.Center) | 197 | .justifyContent(FlexAlign.Center) |
| 190 | .alignItems(VerticalAlign.Center) | 198 | .alignItems(VerticalAlign.Center) |
| 191 | - .opacity(this.tileOpacity) | ||
| 192 | - .backgroundColor($r('app.color.white')) | ||
| 193 | 199 | ||
| 194 | - Image(this.tileOpacity < 0.8 ? $r('app.media.icon_arrow_left_white') : $r('app.media.icon_arrow_left')) | ||
| 195 | - .width(24) | ||
| 196 | - .height(24) | 200 | + Row() { |
| 201 | + Image($r('app.media.icon_arrow_left')) | ||
| 202 | + .width(24).height(24) | ||
| 197 | .objectFit(ImageFit.Auto) | 203 | .objectFit(ImageFit.Auto) |
| 198 | - .margin({ left: 16 }) | 204 | + .margin({ left: 16, top: (44-24)/2}) |
| 199 | .onClick(() => { | 205 | .onClick(() => { |
| 200 | router.back() | 206 | router.back() |
| 201 | }) | 207 | }) |
| 202 | - | 208 | + }.height(44).width('100%') |
| 203 | } | 209 | } |
| 210 | + .width('100%').height(px2vp(this.topSafeHeight) + 44) | ||
| 211 | + .backgroundColor($r('app.color.white')) | ||
| 212 | + .opacity(this.tileOpacity) | ||
| 213 | + .padding({top:px2vp(this.topSafeHeight)}) | ||
| 204 | } | 214 | } |
| 205 | 215 | ||
| 206 | } | 216 | } |
| @@ -113,9 +113,11 @@ export struct TopNavigationComponentNew { | @@ -113,9 +113,11 @@ export struct TopNavigationComponentNew { | ||
| 113 | 'middle': { 'anchor': '__container__', 'align': HorizontalAlign.Center }, | 113 | 'middle': { 'anchor': '__container__', 'align': HorizontalAlign.Center }, |
| 114 | 'bottom': { 'anchor': '__container__', 'align': VerticalAlign.Bottom } | 114 | 'bottom': { 'anchor': '__container__', 'align': VerticalAlign.Bottom } |
| 115 | }) | 115 | }) |
| 116 | - .onChange((index) => { | ||
| 117 | - Logger.info(TAG, `onChange index : ${index}`); | ||
| 118 | - | 116 | + .onAnimationStart((curIndex: number, index: number)=>{ |
| 117 | + Logger.info(TAG, `onAnimationStart ${curIndex} ${index}`); | ||
| 118 | + if (curIndex === index) { | ||
| 119 | + return | ||
| 120 | + } | ||
| 119 | if (this.isBroadcastByIndex(index)) { | 121 | if (this.isBroadcastByIndex(index)) { |
| 120 | // 跳转到播报页面 | 122 | // 跳转到播报页面 |
| 121 | ProcessUtils.gotoBroadcastPage(this.myChannelList[index].pageId) | 123 | ProcessUtils.gotoBroadcastPage(this.myChannelList[index].pageId) |
| @@ -133,7 +135,12 @@ export struct TopNavigationComponentNew { | @@ -133,7 +135,12 @@ export struct TopNavigationComponentNew { | ||
| 133 | this.currentTopNavSelectedIndex = index; | 135 | this.currentTopNavSelectedIndex = index; |
| 134 | this.changePage(this.currentTopNavSelectedIndex) | 136 | this.changePage(this.currentTopNavSelectedIndex) |
| 135 | } | 137 | } |
| 136 | - | 138 | + }) |
| 139 | + // .onAnimationEnd((index: number)=>{ | ||
| 140 | + // Logger.info(TAG, `onAnimationEnd ${index}`); | ||
| 141 | + // }) | ||
| 142 | + .onChange((index) => { | ||
| 143 | + Logger.info(TAG, `onChange index : ${index}`); | ||
| 137 | }) | 144 | }) |
| 138 | } | 145 | } |
| 139 | .width('100%') | 146 | .width('100%') |
| @@ -241,7 +241,7 @@ export struct OperRowListView { | @@ -241,7 +241,7 @@ export struct OperRowListView { | ||
| 241 | .padding({ | 241 | .padding({ |
| 242 | top: 10, | 242 | top: 10, |
| 243 | // bottom: 10 | 243 | // bottom: 10 |
| 244 | - bottom: `${this.bottomSafeHeight}px` | 244 | + bottom: px2vp(this.bottomSafeHeight) |
| 245 | // bottom: 50 | 245 | // bottom: 50 |
| 246 | }) | 246 | }) |
| 247 | } | 247 | } |
| @@ -2,6 +2,7 @@ import { ContentDetailDTO, ContentDTO, PageInfoDTO, ShareInfoDTO, TopicInfo } fr | @@ -2,6 +2,7 @@ import { ContentDetailDTO, ContentDTO, PageInfoDTO, ShareInfoDTO, TopicInfo } fr | ||
| 2 | import { SharePosterItemBean } from 'wdBean/src/main/ets/bean/detail/SharePosterItemBean'; | 2 | import { SharePosterItemBean } from 'wdBean/src/main/ets/bean/detail/SharePosterItemBean'; |
| 3 | import { ShareScene, ShareType, WDShareBase } from 'wdShareBase/Index'; | 3 | import { ShareScene, ShareType, WDShareBase } from 'wdShareBase/Index'; |
| 4 | import { ShareContentType } from 'wdShareBase/src/main/ets/Constant'; | 4 | import { ShareContentType } from 'wdShareBase/src/main/ets/Constant'; |
| 5 | +import { DeepLinkUtil } from './utils/DeepLinkUtil'; | ||
| 5 | 6 | ||
| 6 | export class WDShare { | 7 | export class WDShare { |
| 7 | 8 | ||
| @@ -17,6 +18,7 @@ export class WDShare { | @@ -17,6 +18,7 @@ export class WDShare { | ||
| 17 | title: content.shareInfo.shareTitle, | 18 | title: content.shareInfo.shareTitle, |
| 18 | desc: content.shareInfo.shareSummary, | 19 | desc: content.shareInfo.shareSummary, |
| 19 | link: content.shareInfo.shareUrl, | 20 | link: content.shareInfo.shareUrl, |
| 21 | + deeplink:DeepLinkUtil.generateDeepLinkWithConent(content), | ||
| 20 | } | 22 | } |
| 21 | }) | 23 | }) |
| 22 | } | 24 | } |
| @@ -32,6 +34,7 @@ export class WDShare { | @@ -32,6 +34,7 @@ export class WDShare { | ||
| 32 | title: program.shareInfo.shareTitle, | 34 | title: program.shareInfo.shareTitle, |
| 33 | desc: program.shareInfo.shareSummary, | 35 | desc: program.shareInfo.shareSummary, |
| 34 | link: program.shareInfo.shareUrl, | 36 | link: program.shareInfo.shareUrl, |
| 37 | + deeplink:DeepLinkUtil.generateDeepLinkWithProgram(program), | ||
| 35 | } | 38 | } |
| 36 | }) | 39 | }) |
| 37 | } | 40 | } |
| 1 | +import { ContentDetailDTO, ContentDTO } from 'wdBean/Index'; | ||
| 2 | +import { BreakpointSystem } from 'wdKit/Index'; | ||
| 3 | +import { ContentType } from 'wdRouter/Index'; | ||
| 4 | + | ||
| 5 | +export class DeepLinkUtil { | ||
| 6 | + | ||
| 7 | + private static DEEP_LINK_PREFIX = "rmrbapp:rmrb.app/openwith" | ||
| 8 | + | ||
| 9 | + static generateDeepLinkWithConent(content: ContentDetailDTO): string { | ||
| 10 | + | ||
| 11 | + return DeepLinkUtil.generate(content.newsType, content.newsId +'', content.reLInfo?.relId, content.newsLinkUrl) | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + static generateDeepLinkWithProgram(content: ContentDTO) { | ||
| 15 | + | ||
| 16 | + return DeepLinkUtil.generate(Number(content.objectType), content.objectId +'', content.relId, content.linkUrl) | ||
| 17 | + } | ||
| 18 | + | ||
| 19 | + private static generate(contentType: number, contentId?: string, relId?: string, link?: string): string { | ||
| 20 | + let deeplink = DeepLinkUtil.DEEP_LINK_PREFIX | ||
| 21 | + | ||
| 22 | + let pubParam = `&contentId=${contentId}}&relId=${relId}&skipType=1` | ||
| 23 | + | ||
| 24 | + let type: ContentType = Number(contentType) | ||
| 25 | + switch (type) { | ||
| 26 | + case ContentType.Video: | ||
| 27 | + deeplink += "?type=video&subType=vod_video" | ||
| 28 | + break | ||
| 29 | + case ContentType.Live: | ||
| 30 | + deeplink += "?type=live" | ||
| 31 | + break | ||
| 32 | + case ContentType.ImageText: | ||
| 33 | + if (link && link.length) { | ||
| 34 | + deeplink += "?type=article&subType=h5" | ||
| 35 | + deeplink += "&url=" + encodeURIComponent(link) | ||
| 36 | + } else { | ||
| 37 | + deeplink += "type=article&subType=h5_template_article" | ||
| 38 | + } | ||
| 39 | + break | ||
| 40 | + case ContentType.DynamicImageText: | ||
| 41 | + deeplink += "?type=dynamic" | ||
| 42 | + break | ||
| 43 | + case ContentType.DynamicVideo: | ||
| 44 | + deeplink += "?type=dynamic" | ||
| 45 | + break | ||
| 46 | + case ContentType.Pictures: | ||
| 47 | + deeplink += "?type=picture" | ||
| 48 | + break | ||
| 49 | + case ContentType.Audio: | ||
| 50 | + deeplink += "?type=audio" | ||
| 51 | + break | ||
| 52 | + case ContentType.Ask: | ||
| 53 | + deeplink += "?type=ask" | ||
| 54 | + break | ||
| 55 | + default: | ||
| 56 | + pubParam = "" | ||
| 57 | + break; | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + deeplink += pubParam | ||
| 61 | + return deeplink | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + | ||
| 65 | +} |
| @@ -32,7 +32,6 @@ struct MultiPictureDetailPage { | @@ -32,7 +32,6 @@ struct MultiPictureDetailPage { | ||
| 32 | relType: this.relType | 32 | relType: this.relType |
| 33 | }) | 33 | }) |
| 34 | } | 34 | } |
| 35 | - .padding({top: `${this.topSafeHeight}px`,bottom:`${this.bottomSafeHeight}px`}) | ||
| 36 | 35 | ||
| 37 | } | 36 | } |
| 38 | .backgroundColor(Color.Black) | 37 | .backgroundColor(Color.Black) |
| @@ -5,7 +5,7 @@ import { SPHelper } from 'wdKit/Index'; | @@ -5,7 +5,7 @@ import { SPHelper } from 'wdKit/Index'; | ||
| 5 | import { SpConstants } from 'wdConstant/Index'; | 5 | import { SpConstants } from 'wdConstant/Index'; |
| 6 | import { ButtonOptions, promptAction, window } from '@kit.ArkUI'; | 6 | import { ButtonOptions, promptAction, window } from '@kit.ArkUI'; |
| 7 | import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index'; | 7 | import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index'; |
| 8 | -import { ImageKnifeComponent } from '@ohos/imageknife'; | 8 | +import { ImageKnifeComponent,ScaleType } from '@ohos/imageknife'; |
| 9 | 9 | ||
| 10 | @Entry | 10 | @Entry |
| 11 | @Component | 11 | @Component |
| @@ -13,6 +13,8 @@ struct LaunchInterestsHobbiesPage { | @@ -13,6 +13,8 @@ struct LaunchInterestsHobbiesPage { | ||
| 13 | @State message: string = 'Hello World' | 13 | @State message: string = 'Hello World' |
| 14 | @State selectCount: number = 0 | 14 | @State selectCount: number = 0 |
| 15 | @State interestsArray: InterestsList[] = [] | 15 | @State interestsArray: InterestsList[] = [] |
| 16 | + @State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0 | ||
| 17 | + @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 | ||
| 16 | 18 | ||
| 17 | aboutToAppear(){ | 19 | aboutToAppear(){ |
| 18 | //请求接口,获取兴趣偏好数据 | 20 | //请求接口,获取兴趣偏好数据 |
| @@ -39,6 +41,7 @@ struct LaunchInterestsHobbiesPage { | @@ -39,6 +41,7 @@ struct LaunchInterestsHobbiesPage { | ||
| 39 | this.trackingLaunchJumpOver(false) | 41 | this.trackingLaunchJumpOver(false) |
| 40 | }) | 42 | }) |
| 41 | } | 43 | } |
| 44 | + .margin({top:px2vp(this.topSafeHeight)}) | ||
| 42 | .width('100%') | 45 | .width('100%') |
| 43 | .justifyContent(FlexAlign.End) | 46 | .justifyContent(FlexAlign.End) |
| 44 | 47 | ||
| @@ -62,7 +65,7 @@ struct LaunchInterestsHobbiesPage { | @@ -62,7 +65,7 @@ struct LaunchInterestsHobbiesPage { | ||
| 62 | ForEach(this.interestsArray,(item:InterestsList,index:number)=>{ | 65 | ForEach(this.interestsArray,(item:InterestsList,index:number)=>{ |
| 63 | GridItem(){ | 66 | GridItem(){ |
| 64 | Stack({alignContent:Alignment.TopStart}){ | 67 | Stack({alignContent:Alignment.TopStart}){ |
| 65 | - ImageKnifeComponent({imageKnifeOption:{loadSrc:item.pic}}) | 68 | + ImageKnifeComponent({imageKnifeOption:{loadSrc:item.pic?item.pic:'',mainScaleType:ScaleType.FIT_XY}}) |
| 66 | .width('100%') | 69 | .width('100%') |
| 67 | .height('100%') | 70 | .height('100%') |
| 68 | .backgroundColor(Color.White) | 71 | .backgroundColor(Color.White) |
| @@ -98,7 +101,7 @@ struct LaunchInterestsHobbiesPage { | @@ -98,7 +101,7 @@ struct LaunchInterestsHobbiesPage { | ||
| 98 | Image(item.choose ? $r('app.media.interestsSelected') : $r('app.media.interestsSelectNot')) | 101 | Image(item.choose ? $r('app.media.interestsSelected') : $r('app.media.interestsSelectNot')) |
| 99 | .height('32lpx') | 102 | .height('32lpx') |
| 100 | .width('32lpx') | 103 | .width('32lpx') |
| 101 | - .margin({top:'80lpx',left:'110lpx'}) | 104 | + .margin({top:'80lpx',left:'120lpx'}) |
| 102 | 105 | ||
| 103 | }.justifyContent(FlexAlign.Start) | 106 | }.justifyContent(FlexAlign.Start) |
| 104 | } | 107 | } |
| @@ -118,8 +121,7 @@ struct LaunchInterestsHobbiesPage { | @@ -118,8 +121,7 @@ struct LaunchInterestsHobbiesPage { | ||
| 118 | }) | 121 | }) |
| 119 | } | 122 | } |
| 120 | .width('90%') | 123 | .width('90%') |
| 121 | - // .height('70%') | ||
| 122 | - .margin({top:'61lpx',bottom:'240lpx'}) | 124 | + .margin({top:'61lpx',bottom:'300lpx'}) |
| 123 | .columnsTemplate('1fr 1fr 1fr') | 125 | .columnsTemplate('1fr 1fr 1fr') |
| 124 | .columnsGap('23lpx') | 126 | .columnsGap('23lpx') |
| 125 | .rowsGap('23lpx') | 127 | .rowsGap('23lpx') |
| @@ -129,7 +131,7 @@ struct LaunchInterestsHobbiesPage { | @@ -129,7 +131,7 @@ struct LaunchInterestsHobbiesPage { | ||
| 129 | .height('100%') | 131 | .height('100%') |
| 130 | } | 132 | } |
| 131 | .width('100%') | 133 | .width('100%') |
| 132 | - .height(`calc(100% - ${108 + 'lpx'})`) | 134 | + .height(`calc(100% - ${158 + 'lpx'})`) |
| 133 | // .backgroundColor(Color.Red) | 135 | // .backgroundColor(Color.Red) |
| 134 | 136 | ||
| 135 | Stack({alignContent:Alignment.Center}){ | 137 | Stack({alignContent:Alignment.Center}){ |
| @@ -123,30 +123,16 @@ export struct BottomNavigationComponent { | @@ -123,30 +123,16 @@ export struct BottomNavigationComponent { | ||
| 123 | 123 | ||
| 124 | @Builder | 124 | @Builder |
| 125 | tabBarBuilder(navItem: BottomNavDTO, index: number) { | 125 | tabBarBuilder(navItem: BottomNavDTO, index: number) { |
| 126 | - Stack({ alignContent: Alignment.Bottom }) { | ||
| 127 | - // Image(this.getBottomIcon(navItem, this.currentNavIndex === index)) | ||
| 128 | - // .height(CommonConstants.FULL_PARENT) | ||
| 129 | - // .padding({ | ||
| 130 | - // bottom: 15, | ||
| 131 | - // left: 10, | ||
| 132 | - // right: 10, | ||
| 133 | - // top: 2 | ||
| 134 | - // }) | ||
| 135 | - // .aspectRatio(this.ASPECT_RATIO_1_1) | ||
| 136 | - // .alt(this.getBottomLocalIcon(navItem, this.currentNavIndex === index)) | 126 | + Column() { |
| 137 | ImageKnifeComponent({ imageKnifeOption: this.getBottomImageKnifeOption(navItem, this.currentNavIndex === index) }) | 127 | ImageKnifeComponent({ imageKnifeOption: this.getBottomImageKnifeOption(navItem, this.currentNavIndex === index) }) |
| 138 | - .padding({ | ||
| 139 | - bottom: 15, | ||
| 140 | - left: 10, | ||
| 141 | - right: 10, | ||
| 142 | - top: 2 | ||
| 143 | - }) | ||
| 144 | - .width('100%') | ||
| 145 | - .height('100%') | 128 | + .padding(1) |
| 129 | + .margin({ top: 2 }) | ||
| 130 | + .width(32) | ||
| 131 | + .height(32) | ||
| 146 | .enabled(false) | 132 | .enabled(false) |
| 147 | 133 | ||
| 148 | Text(navItem.name) | 134 | Text(navItem.name) |
| 149 | - .margin({ bottom: $r('app.float.bottom_navigation_margin_bottom') }) | 135 | + .margin({ top: 2 }) |
| 150 | .fontWeight(this.currentNavIndex === index ? FontWeight.Bold : FontWeight.Normal) | 136 | .fontWeight(this.currentNavIndex === index ? FontWeight.Bold : FontWeight.Normal) |
| 151 | .textAlign(TextAlign.Center) | 137 | .textAlign(TextAlign.Center) |
| 152 | .fontSize($r('app.float.font_size_10'))// .fontColor(this.currentNavIndex === index ? Color.Red : Color.Gray) | 138 | .fontSize($r('app.float.font_size_10'))// .fontColor(this.currentNavIndex === index ? Color.Red : Color.Gray) |
| @@ -45,8 +45,8 @@ export struct MultiPictureDetailPageComponent { | @@ -45,8 +45,8 @@ export struct MultiPictureDetailPageComponent { | ||
| 45 | @Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO | 45 | @Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO |
| 46 | @Provide windowWidth: number = AppStorage.get<number>('windowWidth') || 0 | 46 | @Provide windowWidth: number = AppStorage.get<number>('windowWidth') || 0 |
| 47 | @Provide windowHeight: number = AppStorage.get<number>('windowHeight') || 0 | 47 | @Provide windowHeight: number = AppStorage.get<number>('windowHeight') || 0 |
| 48 | - @Provide bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0 | ||
| 49 | - @Provide topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0 | 48 | + @Consume bottomSafeHeight: number |
| 49 | + @Consume topSafeHeight: number | ||
| 50 | @Provide @Watch('onCurrentPageNumUpdated') currentPageNum: string = '01' | 50 | @Provide @Watch('onCurrentPageNumUpdated') currentPageNum: string = '01' |
| 51 | private swiperController: SwiperController = new SwiperController() | 51 | private swiperController: SwiperController = new SwiperController() |
| 52 | private swiperControllerItem: SwiperController = new SwiperController() | 52 | private swiperControllerItem: SwiperController = new SwiperController() |
| @@ -119,7 +119,7 @@ export struct MultiPictureDetailPageComponent { | @@ -119,7 +119,7 @@ export struct MultiPictureDetailPageComponent { | ||
| 119 | currentIndex: $currentIndex, | 119 | currentIndex: $currentIndex, |
| 120 | showCommentList: $showCommentList, | 120 | showCommentList: $showCommentList, |
| 121 | publishCommentModel: $publishCommentModel, | 121 | publishCommentModel: $publishCommentModel, |
| 122 | - interactData:$interactData | 122 | + interactData: this.interactData |
| 123 | }) | 123 | }) |
| 124 | 124 | ||
| 125 | } | 125 | } |
-
Please register or login to post a comment