《仿盒马》app开发技术分享-- 首页地址选择&会员码(8)

鸿蒙小林
• 阅读 4

技术栈

Appgallery connect

开发准备

上一节我们实现了商品流标的创建,数据的填充和展示,并且在商品信息表中添加了许多我们后去需要使用到的参数。让我们的首页功能更加的丰富,截至目前首页板块可以说是完成了百分之五十了,跟展示有关的基本都已完成,接下来就是我们对业务逻辑的完善,当然了我们的首页内容还缺少很多,这一节我们来把顶部toolbar的地址选择,会员码展示实现一下。

功能分析

1.地址选择 地址选择我们需要实现的是省市区街道的选择,当我们点击街道信息后,根据区域的不同,我们可能会调整首页相应的活动板块修改,以及不同模块的展示,比如我们的新人领券活动,我们仅在A区域开展活动,当我们切换的B区域就会关闭相应的功能展示。同时我们下次登陆需要加载上一次选中的地址,要实现这个功能我们还需要把地址信息存储到本地。 2.会员码 会员码这个就比较的简单,我们只需要把条形码跟二维码结合用户的id生成,(因为暂时没有登陆功能,所以我们要模拟一下)在进入页面的时候把条形码加载到页面上即可。

代码实现

地址选择 因为鸿蒙中是自带这个组建的,所以我们直接在点击事件中去调用即可

let districtSelectOptions: sceneMap.DistrictSelectOptions= { countryCode: "CN", subWindowEnabled: false }; sceneMap.selectDistrict(getContext(this), districtSelectOptions).then((data) => { if (data.districts.length>5){ this.locationName=data.districts[5].name! }else { this.locationName=data.districts[4].name! } console.info("SelectDistrict", "Succeeded in selecting district."+data); }).catch((err: BusinessError) => {

});

然后我们执行一下代码拉起地区选择的页面

然后我们实现会员码页面,这个页面就是一个一维码跟二维码的展示

因为系统不支持直接生成一维码,所以我们用到scankit ,二维码用原生

import { scanCore, generateBarcode } from '@kit.ScanKit'; import { BusinessError } from '@kit.BasicServicesKit'; import { image } from '@kit.ImageKit';

@Entry @Component struct QRCodePage { @State content: string = '1122334455';

@State pixelMap: image.PixelMap | undefined = undefined aboutToAppear(): void { this.pixelMap = undefined; let options: generateBarcode.CreateOptions = { scanType: scanCore.ScanType.CODE39_CODE, height:200, width: 400 } try { generateBarcode.createBarcode(this.content, options).then((pixelMap: image.PixelMap) => { this.pixelMap = pixelMap; }).catch((error: BusinessError) => { }) } catch (error) { } }

build() { Column() {

  Column(){
    if (this.pixelMap) {
      Image(this.pixelMap).width('90%').height(70).objectFit(ImageFit.Fill)

      QRCode(this.content).color(Color.Black).width('90%').height(140)
        .margin({top:20})
    }
  }
  .width('80%')
  .backgroundColor("#ffffff")
  .borderRadius(10)
  .padding(10)
  .alignItems(HorizontalAlign.Center)
  .justifyContent(FlexAlign.Center)
}
.backgroundColor("#ffeceaea")

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

} }

这样就实现了对应的内容了

点赞
收藏
评论区
推荐文章
鸿蒙小林 鸿蒙小林
18小时前
《仿盒马》app开发技术分享-- 首页商品流(7)
技术栈Appgalleryconnect开发准备上一节我们实现了首页banner模块的功能,现在我们的首页还需要添加商品列表,作为一个购物类应用,商品列表是非常重要的一个模块,所以我们尽量把它设计的足够完善,参数能更好的支持我们后期复杂的逻辑,它需要有图片
鸿蒙小林 鸿蒙小林
18小时前
《仿盒马》app开发技术分享-- 自定义标题栏&商品详情初探(9)
技术栈Appgalleryconnect开发准备上一节我们实现了顶部toolbar的地址选择,会员码展示,首页的静态页面就先告一段落,这节我们来实现商品列表item的点击传值、自定义标题栏。功能分析1.自定义标题栏当我们进入二级三级页面的时候,就需要向用户
鸿蒙小林 鸿蒙小林
18小时前
《仿盒马》app开发技术分享-- 分类模块顶部导航列表弹窗(16)
技术栈Appgalleryconnect开发准备上一节我们实现了分类页面的顶部导航栏列表,并且实现了首页金刚区跟首页导航栏的联动,这一节我们实现导航栏列表的弹窗功能,需要学习的知识点有自定义弹窗,同时我们的数据源需要跟分类页保持一一致。功能分析1.弹窗自定
鸿蒙小林 鸿蒙小林
12小时前
《仿盒马》app开发技术分享-- 地址管理页(24)
技术栈Appgalleryconnect开发准备上一节我们实现了个人信息页面的信息展示和页面修改,并且实现了数据的同步修改,这一节我们来实现电商应用里比较重要的模块,地址模块。首先我们来实现地址的展示。功能分析地址列表的展示相对来说是比较简单的,首先我们要
鸿蒙小林 鸿蒙小林
12小时前
《仿盒马》app开发技术分享-- 扫一扫功能(35)
技术栈Appgalleryconnect开发准备随着app的逐渐完善,我们现在需要在细节处做更多的打磨,在首页我们添加了很多静态的按钮和组件,现在我们开始对这些组件进行功能的添加,这次首先实现的是首页头部的扫一扫功能,扫一扫我们实现扫码后跳转商品详情页功能
鸿蒙小林 鸿蒙小林
12小时前
《仿盒马》app开发技术分享-- 回收金提现安全锁校验(55)
技术栈Appgalleryconnect开发准备上一节我们实现了回收金提现记录的展示功能,我们回收金相关的内容更加的丰富了,在之前的业务逻辑中我们添加了一个设置安全锁的功能,虽然我们成功设置了安全锁,也把对应的表信息提交到云端,但是我们并没有在提现的流程中
鸿蒙小林 鸿蒙小林
12小时前
《仿盒马》app开发技术分享-- 领取优惠券(56)
技术栈Appgalleryconnect开发准备在之前的功能开发中,我们有些功能只有展示的能力并没有与云端产生任何的交互,后续经过我们的迭代,更多的能力有了交互能力,这一节我们就要开始着手给那些静态展示的模块添加业务逻辑,我们现在要实现的是首页的新人优惠券
鸿蒙小林 鸿蒙小林
12小时前
《仿盒马》app开发技术分享-- 兑换订单提交(73)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换提交前的准备页面,向用户展示了兑换相关的所有信息,这一节我们就可以实现兑换订单的提交了功能分析订单提交我们需要创建对应的兑换商品订单提交信息表,我们需要把地址,商品信息,积分,备注,订单状
鸿蒙小林 鸿蒙小林
9小时前
《伴时匣》app开发技术分享--表单提交准备(4)
技术栈Appgalleryconnect开发准备上一节我们实现了用户登录功能,现在我们进入首页,可以开始准备着手发布我们的日期计划了,在这之前我们先实现信息表的创建。在首页实现一个标题栏,一个悬浮的按钮。功能分析我们的信息表要展示的内容很多,首先是我们的事
鸿蒙小林 鸿蒙小林
9小时前
《伴时匣》app开发技术分享--表单提交页(5)
技术栈Appgalleryconnect开发准备上一节我们已经实现了表单信息的创建,完成了首页跳转表单提交页的内容,这一节我们就要实现表单创建前的数据填充的页面。功能分析在表单提交前,我们要实现的静态内容有很多,分别有输入框,开关,时间选择器,表类型,是否