首页 > 其他分享 >实战案例 欢迎页面业务

实战案例 欢迎页面业务

时间:2024-06-20 14:30:58浏览次数:20  
标签:实战 PreferenceUtil Text 案例 common opacityWhiteText import 页面

一、实验目的

1. 欢迎页面UI开发;

2. 业务逻辑开发;

二、应用介绍

本阶段项目实现了一个美食页面进入页面,运行界面如图所示。

三、代码结构解读

 


import common from '@ohos.app.ability.common'
import router from '@ohos.router'
import PreferenceUtil from '../common/utils/PreferenceUtil'
import UserPrivacyDialog from '../view/welcome/UserPrivacyDialog'
@Extend(Text) function opacityWhiteText(opacity: number, fontSize: number = 10) {
  .fontSize(fontSize)
  .opacity(opacity)
  .fontColor(Color.White)
}
const PREF_KEY = 'userPrivacyKey'
@Entry
@Component
struct WelcomePage {
  context = getContext(this) as common.UIAbilityContext
  controller:CustomDialogController = new CustomDialogController({
    builder:UserPrivacyDialog({
      confirm:()=>this.onConfirm(),
      cancel:()=>this.exitAPP()
    })

  })
  //弹窗
  async aboutToAppear(){
    //加载首选项
    let isAgree =  await PreferenceUtil.getPreferenceValue(PREF_KEY,false)
    //判断是否同意
    if(isAgree){
      this.jumpToIndex()

    }else {
      //不同意,弹窗
      this.controller.open()
    }
  }
  jumpToIndex(){
    setTimeout(()=>{
      router.replaceUrl({
        url:'pages/Index'
      })
    },1000)
  }
  onConfirm(){
    PreferenceUtil.putPreferenceValue(PREF_KEY,true)
    this.jumpToIndex()


  }
  exitAPP(){
  this.context.terminateSelf()
  }

  build() {
    Column({space:10}) {
      // 1.中央Slogan
      Row() {
        Image($r('app.media.home_slogan')).width(260)
      }
      .layoutWeight(1)

      // 2.logo
      Image($r('app.media.home_logo')).width(150)
      // 3.文字描述
      Row() {
        Text('黑马健康支持').opacityWhiteText(0.8, 12)
        Text('IPv6')
          .opacityWhiteText(0.8)
          .border({ style: BorderStyle.Solid, width: 1, color: Color.White, radius: 15 })
          .padding({ left: 5, right: 5 })
        Text('网络').opacityWhiteText(0.8, 12)
      }

      Text(`'减更多'指黑马健康App希望通过软件工具的形式,帮助更多用户实现身材管理`)
        .opacityWhiteText(0.6)
      Text('浙ICP备0000000号-36D')
        .opacityWhiteText(0.4)
        .margin({ bottom: 35 })


    }
    .width('100%')
    .height('100%')
    .backgroundColor($r('app.color.welcome_page_background'))
  }
}

四、实验逻辑

在项目中我们要用一个持久化保存。

用户持久化我们打算用一个加载首选项,然后逻辑如下图:

五、遇到的问题及解决方案

1.模拟器初始页面加载错误

解决方法:

将pages/index修改为”pages/welcomepages“,其中welcomepages你想要加载的页面。

六、你最想分享的亮点

自定义弹出使用的是@CustomDialog组件

小结

1.HarmonyOS基础知识:了解HarmonyOS的架构、特性、应用生态等基础知识,有助于更好地理解和利用HarmonyOS的优势。

2.Lite和Standard模板:明确Lite和Standard模板的区别和适用场景,根据项目需求选择合适的模板进行创建。

3.应用开发技能:具备Android或iOS应用开发经验会有助于快速上手鸿蒙应用开发,熟悉Java、Kotlin、JavaScript等开发语言也会有帮助。

4.鸿蒙SDK和API:熟悉鸿蒙SDK和API的使用方法,能够调用各种功能模块和服务,实现丰富的应用功能。

5.设备适配和优化:了解不同设备类型的适配要求和优化技巧,确保应用在各种设备上能够流畅运行。

6.调试和测试技能:掌握调试工具的使用方法,能够快速定位和解决问题;熟悉测试方法和流程,确保应用的稳定性和性能。

   

标签:实战,PreferenceUtil,Text,案例,common,opacityWhiteText,import,页面
From: https://blog.csdn.net/2201_75858851/article/details/139831696

相关文章

  • 上海交通大学出品《动手学大模型》LLM 实战课,课件+实战教程(教程分享)
    来了来了!上海交通大学的大模型超超超级牛掰的大模型编程实战课公开了,课件+教程,本套实战教程旨在提供大模型相关的入门编程参考。通过简单实践,帮助同学快速入门大模型,更好地开展课程设计或学术研究。上海交大大模型实验室整了一份针对入门阶段的大模型教程,已经看完了非常不......
  • 独家|GenAI年中回顾,2024网络内容审核的API实战指南
    GenAI,即生成式人工智能,正在不断推动各个领域的创新和发展。一、年中回顾2024年被称为视频生成技术的爆发之年,各类GenAI在全球范围引领了一波又一波的潮流,真称得上是神仙打架。让我们共同回顾2024上半年的GenAI有哪些主要表现,并讨论,大量AI生成内容的涌现,又对互联网内......
  • 期末实战——黑马健康3
    文章目录前言一、项目介绍二、应用运行1.食物列表页(1)页面整体分析(2)代码如下(示例)(3)运行效果截图2.食物列表-底部Panel(1)页面整体分析(2)代码如下(示例)(3)运行效果截图3.食物列表-数字键盘(1)页面整体分析(2)代码如下(示例)(3)运行效果截图总结知识补充1.Panel2.Grid容器问题优化......
  • 期末实战——黑马健康4
    黑马健康4——一次开发多端部署文章目录黑马健康4——一次开发多端部署前言一、项目介绍二、应用运行——一次开发多端部署1.页面整体分析——多设备响应式布局2.代码如下(示例)3.运行效果截图总结1.知识补充2.代码优化前言综合运用本学期所学内容及个人自......
  • 探索 v-on 之奥秘一:事件及各类修饰符的深度剖析与案例展示
    目录v-on介绍v-on事件修饰符e.stopPropagation()、.stop、.self​​​​​​​capture​​​​​​​e.preventDefault()、.prevent​​​​​​​.once​​​​​​​.passivev-on介绍        在Vue中,v-on乃是其所提供的用于事件绑定的一种机制,比如要......
  • Vue 中 v-for 的全方位解读:含案例与 key 属性运用及常用数组方法
    目录v-for介绍v-forkey属性的使用Vue数组方法v-for介绍        v-for能够对数字、数组以及对象进行遍历。值得注意的是,当v-for与v-if一同运用时,v-for的优先级要高于v-if。正因如此,应尽量避免将v-if和v-for共同使用。特别是在嵌套使用的情况下,每一......
  • v-show 与 v-if:区别介绍与案例深度分析
    目录v-show、v-if区别v-if、v-else、v-else-if v-show、v-if区别        v-show通常仅会进行一次创建操作,之后主要通过css来实现对其显示与隐藏状态的控制。当进行切换按钮等相关操作时,v-show每次并不会重新去执行DOM的删除与创建动作,而仅仅是对元素的......
  • 前端网站(一) - 登录页面及账号密码验证(完善版)【附源码】
    登录页面及账号密码验证开篇(请大家看完):此网站写给挚爱,后续页面还会慢慢更新,大家敬请期待~~~轻舟所编写这个前端框架的设计初衷,纯粹是为了哄对象开心。除此之外,并无其它任何用途或目的。此前端框架,主要侧重于前端页面的视觉效果和交互体验。通过运用各种前端技术和创意,......
  • 用Automa做的抖音博主视频批量采集器升级版-实战原创
    文章目录前言一、抖音博主视频批量采集器升级版是什么?二、抖音博主视频批量采集器工作流流程图三、流程拆解1.第一步2.第二步3.第三步4.第四步5.第五步6.第六步总结前言Automa开发2年时间,开发应用100多款,分享开发记录市面上的抖音批量下载的工具非常多,用Automa......
  • 《UML基础、案例与应用》习题记录-第17章
    部分习题,使用visio或plantuml,非正确答案,仅供参考,欢迎评论,谢绝转载。 第17章领域分析17.11.2习题1. 2.   3. 4. 5.  6.   ......