《仿盒马》app开发技术分享-- 实现欢迎页与账号校验(84)

鸿蒙小林
• 阅读 2

## 技术栈

Appgallery connect

开发准备

我们的app功能几乎完成了百分之95了,后续我们还会对细节上做更好的打磨,让它更像是一个商业项目,在商业项目中我们每次打开app都会有一个欢迎页面,他可以加载一些大图、广告横幅、视频广告等信息。我们也要实现这样的一个页面,同时我们在用户表设计的时候添加了是否注销字段,我们在这里也使用起来

功能分析

要实现欢迎页面,我们只需要做好大图的展示和倒计时后的自动跳转以及主动的点击跳转,在进入页面时我们就开始从首选项中拿用户数据,如果用户数据存在,我们就根据用户信息查询云数据库中的数据判断当前账号的状态,如果正常进入首页,如果账号异常,则通知用户当前账号已经注销

代码实现

首先我们实现欢迎页

 @State countdown: number = 4;
  @State isJumping: boolean = false;
  private timer: number | null = null;
  @State user: User|null=null
  @State isRemove:boolean=false
startCountdown() {
    this.timer = setInterval(() => {
      if (this.countdown > 1) {
        this.countdown--;
      } 

      else {
          this.toHome();
        }


      }
    }, 1000);
  }

倒计时方法实现之后我们添加关闭的方法和跳转方法

toHome() {
    if (this.isJumping) return;
    this.isJumping = true;
    clearInterval(this.timer!);
    router.replaceUrl({ url: 'pages/Index' });
  }


  aboutToDisappear() {
    if (this.timer) clearInterval(this.timer);
  }

在页面进入的时候,我们拿到用户信息,查询当前账号的状态并启动定时器

  async aboutToAppear() {
    this.startCountdown();

    const value = await StorageUtils.getAll('user');
    if (value!='') {
      let userinfo=JSON.parse(value) as User
      let databaseZone = cloudDatabase.zone('default');
      let condition = new cloudDatabase.DatabaseQuery(user);
      condition.equalTo("user_name",userinfo.user_name)
      let listData = await databaseZone.query(condition);
      let json = JSON.stringify(listData)
      let data1:User[]= JSON.parse(json)
      if (data1.length>0) {
        this.user=data1[0]
      }
    }
  }

根据当前的账号状态判断提醒用户还是跳转到首页

 if (this.user!.is_log_off) {
          promptAction.showDialog({
            title: '提示',
            message: '改账号已经注销',
            buttons: [
              {
                text: '知道了',
                color: '#ffffff'
              },
              {
                text: '关闭',
                color: '#ffffff'
              }
            ],
          })
            .then(data => {
              console.info('showDialog success, click button: ' + data.index);
            })
            .catch((err: Error) => {
              console.info('showDialog error: ' + err);
            })
          clearInterval(this.timer!);
        }else {
          this.toHome();
        }

然后我们实现ui相关的内容

 build() {
    Stack({alignContent:Alignment.TopEnd}) {
      Image($r('app.media.splash'))
        .width('100%')
        .height('100%')
        .objectFit(ImageFit.Cover)
      Row(){
        Text(`${this.countdown}秒 | 跳过`)
          .width(100)
          .height(40)
          .textAlign(TextAlign.Center)
          .borderRadius(20)
          .border({width:1,color:Color.White})
          .fontColor('#FFFFFF')
          .backgroundColor('rgba(0,0,0,0.3)')

      }
      .padding(15)

    }
    .width('100%')
    .height('100%')
  }

到这我们就实现了欢迎页面

点赞
收藏
评论区
推荐文章
鸿蒙小林 鸿蒙小林
16小时前
《仿盒马》app开发技术分享-- 分类模块顶部导航列表(15)
技术栈Appgalleryconnect开发准备上一节我们实现了购物车商品列表的大部分功能,实现了商品的添加、删除、增减、价格计算等业务,并且都跟云端进行通信。现在我们继续对项目进行改造,这一节我们要改造的内容是分类页,这个页面我们在之前的非端云一体化项目
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 扫一扫功能(35)
技术栈Appgalleryconnect开发准备随着app的逐渐完善,我们现在需要在细节处做更多的打磨,在首页我们添加了很多静态的按钮和组件,现在我们开始对这些组件进行功能的添加,这次首先实现的是首页头部的扫一扫功能,扫一扫我们实现扫码后跳转商品详情页功能
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 回收金查询页面(48)
技术栈Appgalleryconnect开发准备上一节我们实现了查看当前账号下的预收益,以及当下收益,并且展示了已完成订单的列表,现在我们可以针对收益来做更多的内容了,在之前的开发中我们在个人中心页面实现了一个静态的金额展示,后续我们将会在这里展示当前账号
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 回收金提现准备页(50)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金的收入、支出记录查询,并且在订单完成后成功创建对应的收支记录,但是我们暂时只有收入记录,并没有支出记录,这一节我们将要实现账号的回收金提现功能,从商业角度实现app应用的正向循环功能分析
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 优惠券展示页(57)
技术栈Appgalleryconnect开发准备上一节我们实现了优惠券的领取功能,并且在云端已经成功查询出优惠券信息,那么我们需要来实现一个优惠券展示的页面来向用户展示当前账号下的优惠券信息,辅助用户更好的去购买需要的商品,因为优惠券会有多种状态,在展示时
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 个人中心页优化(62)
技术栈Appgalleryconnect开发准备上一节我们实现了订单逻辑的优化,现在我们的app功能更加的完善了,并且随着我们的迭代逻辑疏漏越来越少,现在我们继续进行优化,在之前的业务逻辑中我们的个人中心页面展示了用户的余额以及积分商城入口,这里我们要展示
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 兑换商品详情(69)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换商品列表的展示,用户可以在回收之后通过积分页面进入兑换列表页查看当前能够兑换的商品了,我们距离一个完整的app又更近了一步,现在我们要实现的就是当用户点击列表条目的时候能够查看数据详情。功
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 逻辑优化第三弹(83)
技术栈Appgalleryconnect开发准备现在我们的app功能已经趋近完善,bug和缺失的细节也越来越少了,我们继续对app进行优化,首先是我们的积分页面,我们只实现了全部的积分展示内容,对收入和支出的积分明细并没有进行展示,这里我们要实现一下,然后
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 注销账号恢复(85)
技术栈Appgalleryconnect开发准备上一节我们实现了欢迎页的逻辑,并且在欢迎页面实现了对账号状态的提示,但是如果我们的用户之前因为一些原因注销了账号,但现在又想用回我们的应用怎么办?我们这一节就要在注销账号的提示弹窗处,实现一个账号恢复功能,使
鸿蒙小林 鸿蒙小林
10小时前
《仿盒马》app开发技术分享-- 账号注销(86)
技术栈Appgalleryconnect开发准备上一节我们在欢迎页用户账号注销后给用户开通了一个账号恢复的功能,但是我们的账号注销一直都是从云数据库直接修改的。一直没有一个账号注销的入口,这一节我们来实现这样的一个入口,并且实现账号注销的功能功能分析要实现