鸿蒙启动页开发
1.1 更改应用名称和图标
1.更改应用图标
找到moudle.json5文件,找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可
2.更改应用名称
3.效果展示
2.1 广告页面开发
3.1 详细介绍
3.1.1 启动页面
import { PrivacyDialog } from '../views/components/PrivacyDialog'
import { router, window } from '@kit.ArkUI'
import { preferences } from '@kit.ArkData'
import { common } from '@kit.AbilityKit'
@ Entry
@ Component
struct launchPage {
context: common. UIAbilityContext = getContext ( this ) as common. UIAbilityContext
@ State
isStore: boolean = true
aboutToAppear ( ) : void {
window. getLastWindow ( getContext ( ) ) . then ( win => {
win. setWindowLayoutFullScreen ( true )
} )
const store = preferences. getPreferencesSync ( this . context, {
'name' : 'infoStore'
} )
this . isStore = store. getSync ( 'isStore' , true ) as boolean
console . info ( ` userAction: ${ this . isStore} ` )
}
async saveInfo ( ) {
const store = preferences. getPreferencesSync ( this . context, {
'name' : 'infoStore'
} )
store. putSync ( 'isStore' , false )
store. flush ( )
}
onPageShow ( ) : void {
if ( this . isStore) {
this . controller. open ( )
} else {
router. pushUrl ( {
url: 'pages/AdvertisementPage'
} )
}
}
controller: CustomDialogController = new CustomDialogController ( {
builder: PrivacyDialog ( {
cancel : ( ) => {
this . context?. terminateSelf ( )
} ,
confirm : ( ) => {
this . saveInfo ( )
router. pushUrl ( {
url: 'pages/AdvertisementPage'
} )
} ,
} ) ,
alignment: DialogAlignment. Bottom,
}
)
build ( ) {
Stack ( ) {
Image ( $r ( 'app.media.back' ) )
Column ( { space: 10 } ) {
Image ( $r ( 'app.media.study_app' ) )
. width ( 80 )
. aspectRatio ( 1 )
Text ( '健康学习' )
. fontSize ( 20 )
. fontWeight ( FontWeight. Bold)
Text ( '学习总有新玩法' )
. fontWeight ( FontWeight. Bold)
} . width ( '100%' )
. height ( '100%' )
. padding ( {
top: 100
} )
}
. height ( '100%' )
. width ( '100%' )
}
}
3.1.2 自定义弹层
import { router } from '@kit.ArkUI'
@ Preview
@ CustomDialog
export struct PrivacyDialog {
controller: CustomDialogController = new CustomDialogController ( { builder: '' } )
cancel: Function = ( ) => { }
confirm: Function = ( ) => { }
build ( ) {
Column ( ) {
Text ( '欢迎使用我的应用' )
Text ( '我们充分尊重用户的隐私权,并按照法律要求和业界成熟的安全标准,为您的个人信息提供相应的安全保护措施。' )
Text ( '协议隐私保护声明' )
. fontColor ( '#007fdd' )
. onClick ( ( ) => {
router. pushUrl ( { url: '' } )
} )
Text ( '(以下简称为“本声明”)以便您了解我们如何搜集、使用、披露、保护、存储、及传输您的个人数据。请您仔细阅读本声明。如您有任何疑问,请告知我们。' )
Row ( ) {
Text ( '不同意' ) . fontColor ( '#007fdd' )
. onClick ( ( ) => {
this . controller. close ( )
this . cancel ( )
} )
Blank ( )
Text ( '同意' ) . fontColor ( '#007fdd' )
. onClick ( ( ) => {
this . controller. close ( )
this . confirm ( )
} )
} . width ( '70%' )
}
}
}
3.1.3 广告页面
import { router, window } from '@kit.ArkUI'
@ Entry
@ Component
struct AdvertisementPage {
@ State time: number = 5
@ State timeID: number = - 1
aboutToAppear ( ) : void {
window. getLastWindow ( getContext ( ) ) . then ( win => {
win. setWindowLayoutFullScreen ( true )
} )
}
onPageShow ( ) : void {
this . timeID = setInterval ( ( ) => {
console . log ( 'test' , this . time)
if ( this . time > 0 ) {
this . time--
} else if ( this . time == 0 ) {
clearTimeout ( this . timeID)
router. pushUrl ( {
url: 'pages/Index'
} )
}
} , 1000 )
}
build ( ) {
Stack ( ) {
Image ( $r ( 'app.media.back' ) )
Row ( ) {
Text ( '跳过广告' + this . time + 's' )
. fontSize ( 20 )
. backgroundColor ( 'rgba(0,0,0,0.1)' )
. padding ( 8 )
. borderRadius ( 30 )
}
. width ( '100%' )
. height ( '100%' )
. justifyContent ( FlexAlign. End)
. alignItems ( VerticalAlign. Top)
. padding ( {
top: 30 ,
right: 30
} )
Row ( { space: 10 } ) {
Image ( $r ( 'app.media.study_app' ) )
. width ( 80 )
. aspectRatio ( 1 )
Column ( { space: 5 } ) {
Text ( '健康学习' )
. fontSize ( 30 )
Text ( '学习总有新玩法' )
. fontSize ( 20 )
} . height ( 80 )
. justifyContent ( FlexAlign. Start)
}
. width ( '100%' )
. height ( '100%' )
. justifyContent ( FlexAlign. Center)
. alignItems ( VerticalAlign. Bottom)
. padding ( {
bottom: 16
} )
}
. height ( '100%' )
. width ( '100%' )
}
}