王士厅
Showing 37 changed files with 173 additions and 112 deletions
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
]
}
}
\ No newline at end of file
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true
... ...
... ... @@ -233,7 +233,8 @@ struct createImg {
})
}
}
} else if (this.fullColumnImgUrls.length === 4) {
} else if (this.fullColumnImgUrls.length === 5) {
// 四图卡里面塞了一张补位卡
GridCol({
span: { xs: 4 }
}) {
... ...
... ... @@ -53,7 +53,7 @@ export struct Card5Component {
}
)
.aspectRatio(343 / 225)
if (!!this.titleShowPolicy) {
if (!!this.titleShowPolicy || this.titleShowPolicy === null ) {
Row()
.borderRadius(
{
... ...
... ... @@ -273,14 +273,14 @@ struct indicatorAnimations {
if (this.isAutoPlay) {
setTimeout(() => {
this.leftW = '100%'
this.centerFontSize = 11
this.centerFontSize = 10
}, 0)
setTimeout(() => {
this.rightW = '100%'
}, 1500)
} else {
this.leftW = '100%'
this.centerFontSize = 11
this.centerFontSize = 10
this.rightW = '100%'
}
... ... @@ -307,7 +307,7 @@ struct indicatorAnimations {
Text(this.index + 1 < 10 ? `0${this.index + 1}` : `${this.index + 1}`)
.fontSize(this.centerFontSize)
.fontColor($r('app.color.white'))
.width(16)
.width(11)
.textAlign(TextAlign.Center)
.margin({
bottom: -2
... ...
... ... @@ -153,8 +153,8 @@ export struct ZhSingleRow02 {
.padding({
left: $r('app.float.card_comp_pagePadding_lf'),
// right: $r('app.float.card_comp_pagePadding_lf'),
top: $r('app.float.card_comp_pagePadding_tb'),
bottom: $r('app.float.card_comp_pagePadding_tb')
top: 8,
bottom: 8
})
.backgroundColor($r('app.color.white'))
.margin({ bottom: 8 })
... ...
... ... @@ -244,6 +244,7 @@ export struct ZhSingleRow03 {
.width(154)
.height(60)
.maxLines(3)
.fontSize(15)
.textOverflow({overflow: TextOverflow.Ellipsis})
}
.margin({bottom: 16})
... ... @@ -254,8 +255,10 @@ export struct ZhSingleRow03 {
Text(this.format(new Date(item.liveInfo.liveStartTime).getTime()))
.margin({right: 6})
.fontColor(0x000000)
.fontSize(13)
.fontSize(12)
.textAlign(TextAlign.Start)
.fontFamily('PingFang SC-Semibold')
.fontWeight(600)
Image($r('app.media.timeline_rect'))
.width(4)
.height(3)
... ... @@ -263,10 +266,13 @@ export struct ZhSingleRow03 {
Text(item.liveInfo.liveStartTime.split(' ')[1].slice(0, 5))
.margin({right: 6})
.fontColor(0x000000)
.fontSize(13)
.fontSize(12)
.fontFamily('PingFang SC-Semibold')
.fontWeight(600)
Text('开始直播')
.fontColor(0xC8C8C8)
.fontSize(13)
.fontSize(12)
.fontFamily('PingFang SC-Semibold')
}
Row() {
... ...
... ... @@ -14,15 +14,16 @@ export struct LottieView {
private politeChickyController: CanvasRenderingContext2D =
new CanvasRenderingContext2D(); // CanvasRenderingContext2D对象
private animateItem: AnimationItem | null = null; // 初始化loadAnimation接口的返回对象
@Prop title: string
// 页面隐藏销毁动画
onPageHide(): void {
this.animateItem?.destroy()
if (this.onComplete) {
this.animateItem?.removeEventListener('complete', this.onComplete)
}
}
// onPageHide(): void {
// this.animateItem?.destroy()
//
// if (this.onComplete) {
// this.animateItem?.removeEventListener('complete', this.onComplete)
// }
// }
/**
* 加载动画
... ... @@ -31,7 +32,7 @@ export struct LottieView {
loadAnimation() {
// 销毁动画,减少缓存
if (this.animateItem !== null) {
this.animateItem.destroy();
this.animateItem.destroy(this.name);
this.animateItem = null;
}
... ... @@ -54,6 +55,32 @@ export struct LottieView {
}
aboutToAppear(): void {
// console.error('XXXXZZZZ', '-------aboutToAppear-------' + this.title)
//lottie?.play()
// if(this.init){
// if(this.animateItem = null){
// this.loadAnimation();
// }
// }
}
aboutToDisappear(): void {
// console.error('XXXXZZZZ', '-------aboutToDisappear-------' + this.title)
// if(this.init){
// lottie?.destroy(this.name)
//
// if (this.onComplete) {
// this.animateItem?.removeEventListener('complete', this.onComplete)
// }
// this.animateItem = null;
// // }
}
build() {
Stack({ alignContent: Alignment.TopStart }) {
Canvas(this.politeChickyController)
... ... @@ -65,9 +92,13 @@ export struct LottieView {
this.onReady(this.animateItem)
}
})
.onClick(() => {
this.animateItem?.play()
.onDisAppear(() => {
lottie.destroy(this.name)
this.animateItem = null;
}).onAppear(()=>{
this.loadAnimation();
})
}
}
}
... ...
... ... @@ -57,7 +57,6 @@ export struct OtherHomePageBottomCommentComponent {
this.curPageNum = 1;
this.hasMore = true
this.isGetRequest = false
this.data_comment.clear()
if (!this.isLoading){
this.getNewPageData()
... ... @@ -134,6 +133,8 @@ export struct OtherHomePageBottomCommentComponent {
let object = new OtherUserCommentListRequestItem("", 20, this.curPageNum, time, "1", this.curUserId)
MinePageDatasModel.getOtherCommentListData(object, getContext(this)).then((value) => {
if (this.curPageNum === 1) this.data_comment.clear()
if (!this.data_comment || value.list.length == 0) {
this.hasMore = false
this.isLoading = false
... ...
... ... @@ -31,7 +31,7 @@ let preferenceTheme: dataPreferences.Preferences | null = null
@Component
struct LiveMorePage {
@State data: LazyDataSource<ContentDTO> = new LazyDataSource();
topSafeHeight: number = AppStorage.get<number>('topSafeHeight') as number;
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') as number;
@State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
type: number = 1;
pageSize: number = 20;
... ... @@ -46,11 +46,9 @@ struct LiveMorePage {
@State liveRoomList: LiveRoomDataBean[] = []
// 点击过的数据
@State clickDatas: Array<string> = []
@State loadImg: boolean = false;
async aboutToAppear() : Promise<void>{
async aboutToAppear(): Promise<void> {
await this.getPreferencesFromStorage()
this.loadImg = await onlyWifiLoadImg();
this.getLivMoreClickPreference()
... ... @@ -60,16 +58,9 @@ struct LiveMorePage {
}
build() {
// Navigation() {
// //滑动区域
// this.ListLayout()
// }
// .titleMode(NavigationTitleMode.Mini)
// .title('直播列表')
Column() {
this.TabbarNormal()
if (this.viewType == ViewType.LOADING) {
this.LoadingLayout()
} else if (this.viewType == ViewType.ERROR) {
... ... @@ -96,15 +87,13 @@ struct LiveMorePage {
})
}
}
.height('100%')
.padding({
left: $r('app.float.card_comp_pagePadding_lf'),
right: $r('app.float.card_comp_pagePadding_lf'),
bottom: $r('app.float.card_comp_pagePadding_tb')
})
.margin({bottom:px2vp(this.bottomSafeHeight)})
.onClick(() => {
ProcessUtils.processPage(this.contentDTO)
top:px2vp(this.topSafeHeight),bottom:px2vp(this.bottomSafeHeight)
})
}
@Builder
... ... @@ -133,7 +122,7 @@ struct LiveMorePage {
}
.scrollBar(BarState.Off)
.edgeEffect(EdgeEffect.None)
.cachedCount(8)
.cachedCount(3)
.height('calc(100% - 44vp)')
.onReachEnd(() => {
Logger.debug(TAG, "触底了");
... ... @@ -160,9 +149,10 @@ struct LiveMorePage {
.margin({ top: 16, bottom: 8 })
.alignSelf(ItemAlign.Start)
.fontColor(this.isClicked(item.objectId) ? $r('app.color.color_848484') : $r('app.color.color_222222'))
Stack() {
if (item.fullColumnImgUrls && item.fullColumnImgUrls.length > 0) {
Image(this.loadImg?item.fullColumnImgUrls[0].url:'')
Image(this.loadImg ? item.fullColumnImgUrls[0].url : '')
.backgroundColor(this.loadImg ? $r('app.color.color_B0B0B0') : 0xf5f5f5)
.width('100%')
.aspectRatio(16 / 9)
... ... @@ -246,7 +236,6 @@ struct LiveMorePage {
})
}
.height(44)
.margin({top:this.topSafeHeight+'px'})
.width('100%')
}
... ... @@ -260,24 +249,25 @@ struct LiveMorePage {
lottieHeight: 14,
autoplay: true,
loop: true,
title: item.newsTitle
})
.margin({
right: '2vp'
})
Text('直播中')
.fontSize('12vp')
.fontWeight(400)
.fontColor(Color.White)
.textShadow({ radius: 2, color: 'rgba(0,0,0,0.3)', offsetX: 0, offsetY: 2 })
.textShadow({
radius: 2,
color: 'rgba(0,0,0,0.3)',
offsetX: 0,
offsetY: 2
})
.margin({
right: '5vp'
})
// Divider()
// .vertical(true)
// .strokeWidth(1)
// .height('12vp')
// .margin({ top: 2, bottom: 2 })
// .color(Color.White)
Image($r('app.media.icon_comp_line_live')).height('11vp').width('1.5vp')
... ... @@ -285,7 +275,12 @@ struct LiveMorePage {
Text(this.getLiveRoomNumber(item))
.fontSize('12vp')
.fontWeight(400)
.textShadow({ radius: 2, color: 'rgba(0,0,0,0.3)', offsetX: 0, offsetY: 2 })
.textShadow({
radius: 2,
color: 'rgba(0,0,0,0.3)',
offsetX: 0,
offsetY: 2
})
.fontColor(Color.White)
.margin({
left: '5vp'
... ... @@ -422,7 +417,7 @@ struct LiveMorePage {
const arr: Array<string> = []
arr.push(...this.clickDatas)
preferenceTheme.put('liveMorePage', arr).then(() => {
Logger.debug(TAG,"Succeeded in putting value of 'startup'.");
Logger.debug(TAG, "Succeeded in putting value of 'startup'.");
}).catch((err: BusinessError) => {
Logger.debug(TAG, "Failed to put value of 'startup'. code =" + err.code + ", message =" + err.message);
})
... ...
... ... @@ -31,7 +31,8 @@ const TAG: string = 'ReserveMorePage';
struct ReserveMorePage {
@State data: LazyDataSource<ContentDTO> = new LazyDataSource();
private reserveList: ReserveItemBean[] = []
topSafeHeight: number = AppStorage.get<number>('topSafeHeight') as number;
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') as number;
@State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
type: number = 2;
pageSize: number = 20;
title: string = '直播预告'
... ... @@ -78,10 +79,13 @@ struct ReserveMorePage {
this.currentPage = 1
this.getData(resolve)
},
})
}).backgroundColor($r('app.color.color_F5F5F5'))
}
}.backgroundColor($r('app.color.color_F5F5F5'))
}.height('100%').backgroundColor('#FFFFFF').padding({
top: px2vp(this.topSafeHeight),
bottom: px2vp(this.bottomSafeHeight)
})
}
... ... @@ -306,8 +310,7 @@ struct ReserveMorePage {
middle: { anchor: "__container__", align: HorizontalAlign.Center }
})
}
.height(vp2px(44) + this.topSafeHeight + 'px')
.padding({ top: this.topSafeHeight + 'px' })
.height(44)
.width('100%').backgroundColor('#FFFFFF')
}
... ...
... ... @@ -142,11 +142,11 @@ export struct HorizontalStrokeCardThreeTwoRadioForMoreComponent {
.textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。
.textAlign(TextAlign.Start)
.margin({ top: 8 })
.width(150)
.width(this.compDTO.operDataList.length == 2 ? 210 : 150)
.lineHeight(19)
.height(42)
.lineHeight(21)
}
.height(134)
.padding({ right: 16 })
// .offset({x:16})
.onClick(() => {
... ...
... ... @@ -146,16 +146,18 @@ export struct LiveHorizontalCardComponent {
Column() {
Stack({ alignContent: Alignment.BottomEnd }) {
Image(this.loadImg ? item.coverUrl : '')
.backgroundColor(0xf5f5f5)
.backgroundColor(this.loadImg ? 0xffffff : 0xf5f5f5)
.aspectRatio(16 / 9)
.width(this.compDTO.operDataList.length == 2 ? 210 : 150)
.borderRadius(4)
.objectFit(ImageFit.Cover)
// .borderRadius(4)
.objectFit(ImageFit.Contain)
CardMediaInfo({
livePeopleNum:false,
contentDTO: item
})
}
.borderRadius(4)
.border({width: 1, color: 0xf5f5f5})
Text(item.newsTitle)
.fontSize($r("app.float.font_size_14"))
... ... @@ -166,9 +168,9 @@ export struct LiveHorizontalCardComponent {
.textAlign(TextAlign.Start)
.margin({ top: 8 })
.width(this.compDTO.operDataList.length == 2 ? 210 : 150)
.height(42)
.lineHeight(21)
}
.height(134)
.padding({ right: 16 })
.onClick(() => {
InfomationCardClick.track(this.compDTO, item, this.pageId, this.pageName)
... ...
... ... @@ -16,10 +16,10 @@ const TAG = "OtherNormalUserHomePage"
struct OtherNormalUserHomePage {
@State params:Record<string, string> = router.getParams() as Record<string, string>;
@Watch('change') @State curUserId: string = '-1';
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
pageShowTime:number = 0;
pageHideTime:number = 0;
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
@State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
onPageShow() {
this.curUserId = this.params?.['userId'];
... ... @@ -68,7 +68,7 @@ struct OtherNormalUserHomePage {
Stack({ alignContent: Alignment.Top }){
Image($r('app.media.title_bg'))
.width('100%')
.height('355lpx')
.height(`calc(${295 + this.topSafeHeight + 'lpx'})`)
.objectFit(ImageFit.Cover)
Row()
... ... @@ -83,7 +83,7 @@ struct OtherNormalUserHomePage {
Stack({ alignContent: Alignment.Top }){
this.MineHomeTitleTransparent()
this.MineHomeTitleWhite()
}
}.margin({top:px2vp(this.topSafeHeight)})
Scroll() {
Column() {
... ... @@ -175,7 +175,7 @@ struct OtherNormalUserHomePage {
this.tileOpacity = persent
}
})
.backgroundColor($r('app.color.color_transparent'))
// .backgroundColor($r('app.color.color_transparent'))
.height('184lpx')
.width('100%')
.padding({ left: '6lpx' })
... ... @@ -184,7 +184,7 @@ struct OtherNormalUserHomePage {
if(StringUtils.isNotEmpty(this.desc)){
Column() {
Row() {
Text(this.desc)
Text('简介:'+this.desc)
.fontSize('27lpx')
.maxLines(3)
.textOverflow({ overflow: TextOverflow.Ellipsis })
... ...
... ... @@ -26,6 +26,8 @@ struct SearchCreatorPage {
@State isLoading: boolean = false
@State hasMore: boolean = true
curPageNum: number = 1;
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
@State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
onPageShow() {
this.keyword = this.params?.pageID;
... ... @@ -154,6 +156,7 @@ struct SearchCreatorPage {
}
build() {
Column(){
Column() {
CustomTitleUI({ titleName: "全部结果" })
Divider()
... ... @@ -200,5 +203,10 @@ struct SearchCreatorPage {
}
.width('100%')
.height('100%')
}.width("100%")
.height("100%")
.backgroundColor($r('app.color.color_transparent'))
.padding({top:px2vp(this.topSafeHeight)})
}
}
\ No newline at end of file
... ...
... ... @@ -2,12 +2,12 @@ import { CommentListItem } from './CommentListItem'
export class MineCommentListDetailItem{
list:CommentListItem[] = []
hasNext: number = 1
pageNum: number = 0
pageSize: number = 20
totalCount: number = 0
constructor(list?:CommentListItem[],pageNum?: number,pageSize?: number,totalCount?: number) {
constructor(list?:CommentListItem[],hasNext?: number,pageNum?: number,pageSize?: number,totalCount?: number) {
}
}
\ No newline at end of file
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true
... ...
... ... @@ -59,10 +59,13 @@ struct LoginProtocolWebview {
.width(24)
.aspectRatio(1)
.onClick(() => {
if (this.isConnectNetwork){
///无网络状态下 执行webviewController.accessBackward方法 会crash
if(this.webviewController.accessBackward()){
this.webviewController.backward()
return
}
}
router.back();
}).margin({ left: 16 })
Text()
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
... ... @@ -5,8 +5,8 @@
"description": "$string:shared_desc",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...
import {InterestsHobbiesModel, InterestsList} from '../viewModel/InterestsHobbiesModel'
import { WDRouterRule } from 'wdRouter';
import { WDRouterPage } from 'wdRouter';
import { SPHelper } from 'wdKit/Index';
import { SpConstants } from 'wdConstant/Index';
import { NetworkUtil, SPHelper } from 'wdKit/Index';
import { SpConstants, ViewType } from 'wdConstant/Index';
import { CustomToast} from 'wdKit'
import { ButtonOptions, promptAction, window } from '@kit.ArkUI';
import { ParamType, TrackConstants, TrackingContent } from 'wdTracking/Index';
import { ImageKnifeComponent,ScaleType } from '@ohos/imageknife';
import { EmptyComponent, WDViewDefaultType } from 'wdComponent/Index';
@Entry
@Component
... ... @@ -16,7 +17,7 @@ struct LaunchInterestsHobbiesPage {
@State interestsArray: InterestsList[] = []
@State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
@State isConnectNetwork : boolean = NetworkUtil.isNetConnected()
dialogToast: CustomDialogController = new CustomDialogController({
builder: CustomToast({
msg: '请先选择您感兴趣的内容哦',
... ... @@ -72,6 +73,13 @@ struct LaunchInterestsHobbiesPage {
.height('35lpx')
.margin({top:'12lpx'})
if(!this.isConnectNetwork){
EmptyComponent({ emptyType: 1,emptyHeight:"60%" ,retry: () => {
this.isConnectNetwork = NetworkUtil.isNetConnected()
}})
.layoutWeight(1)
.width('100%')
}else{
Grid( ){
ForEach(this.interestsArray,(item:InterestsList,index:number)=>{
GridItem(){
... ... @@ -138,6 +146,9 @@ struct LaunchInterestsHobbiesPage {
.rowsGap('23lpx')
.scrollBar(BarState.Off)
}
}
.width('100%')
.height('100%')
}
... ...
... ... @@ -110,7 +110,7 @@ export default struct CustomDialogComponent {
.margin({top: 1})
}
.width('528lpx')
.borderRadius('15')
.borderRadius('10')
.backgroundColor(Color.White)
.clip(true)
... ...
... ... @@ -6,8 +6,8 @@
"mainElement": "EntryAbility",
"deviceTypes": [
"phone",
"tablet",
"2in1"
// "tablet",
// "2in1"
],
"compressNativeLibs": true,
"deliveryWithInstall": true,
... ...