系列文章目录
第一章 Soul音乐APP
第二章 Soul音乐APP
第三章 Soul音乐APP
第四章 Soul音乐APP
第五章Soul音乐APP
第一章 Soul音乐APP
前言
综合运用本学期所学内容及个人自学知识,使用HarmonyOS 4.0及以上版本开发一款具有实用性和创新性的移动应用软件。
一、欢迎页面
1.页面布局:
使用Column和Row组件进行页面布局,整体背景色为黑色。
页面顶部包含一个Image组件,作为应用的Logo,宽度被设置为260。
Logo下方是一个包含小图片和文本的Row组件,文本内容为"Soul Music",并设置了一些样式属性如字体大小、字体粗细、透明度和颜色。
build() {
Column({space:10}) {
Row() {
Image($r('app.media.logo'))
.width(260)
}
.layoutWeight(1)
Row({space: 10}) {
Image($r('app.media.tu1'))
.width(55)
Text('Soul Music')
.fontSize(24)
.fontWeight(FontWeight.Bold)
.opacity(0.7)
.fontColor(Color.White)
}
.margin({bottom: 50})
}
.backgroundColor('#000')
.width('100%')
.height('100%')
2.弹窗控制:
导入了一个名为CustomDialogController的自定义弹窗控制器(未在代码中定义,但根据使用方式推测)。
弹窗的内容(由welcome_Dialog提供)有两个操作:确认(confirm)和取消(cancel)。
当点击确认时,调用onConfirm方法,将用户隐私偏好保存到偏好设置中,并跳转到应用的主页(Index页面)。
当点击取消时,调用exitApp方法,终止当前应用。
代码如下:
context = getContext(this) as common.UIAbilityContext
controller: CustomDialogController = new CustomDialogController({
builder: welcome_Dialog({
confirm: () => this.onConfirm(),
cancel: () => this.exitApp()
})
})
//同意进入应用
onConfirm(){
PreferenceUtil.putPreferenceValue(PREF_KEY, true)
this.jumpToIndex()
}
//退出应用
exitApp() {
this.context.terminateSelf()
}
3.用户隐私偏好处理:
使用PreferenceUtil(从…/common/utils/PreferenceUtil导入)来操作偏好设置。
定义了偏好键PREF_KEY为’userPrivacyKey’。
在页面即将显示时(aboutToAppear方法),检查用户是否已经同意隐私政策(通过PreferenceUtil.getPreferenceValue方法)。
如果用户已同意,则直接跳转到主页;否则,打开弹窗供用户选择。
代码如下:
//页面一运行就打开弹窗
async aboutToAppear() {
//1.加载
let isAgree = await PreferenceUtil.getPreferenceValue(PREF_KEY, false)
//2.判断
if (isAgree) {
this.jumpToIndex()
}else {
this.controller.open()
}
}
4.页面跳转:
使用router.replaceUrl方法进行页面跳转。
在onConfirm和jumpToIndex方法中,都使用了setTimeout来延迟跳转,这可能是为了确保一些界面操作或动画完成后才进行跳转。
代码如下:
jumpToIndex() {
setTimeout(() => {
router.replaceUrl({
url: 'pages/Index'
})
}, 1000)
}
总结
该代码定义了一个鸿蒙OS应用的欢迎页面,主要功能包括:
显示应用的Logo和标题(“Soul Music”)。
在页面加载时,检查用户是否已同意隐私政策。
如果用户已同意,则直接跳转到应用的主页;否则,显示一个弹窗供用户选择确认或取消。
用户确认后,将隐私偏好保存到偏好设置中,并跳转到主页;用户取消后,退出应用。
此页面组件使用了鸿蒙OS的UIAbility框架进行开发,并通过自定义的弹窗控制器和偏好设置工具类来实现具体功能。