# swift_7_0 **Repository Path**: itluma2008/swift_7_0 ## Basic Information - **Project Name**: swift_7_0 - **Description**: 仓库私有化了11111111 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2025-03-05 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README day01: 一、搭建项目,导入素材,推送远程库 二、搭建项目目录结构 api:存放后端接口的请求 components:公共组件 constants:常量 models:数据模型 utils:工具类 在每个目录下都创建一个index.ets文件,用来导出当前目录中的资源,注意index需要全小写,可以简化导入过程: import {资源1,资源2,资源N} from "./目录/index" 三、搭建广告页 采用子窗口展示广告页 四、获取用户Token 调用后端服务获取,采用http请求方式: 1、创建请求对象 2、设置请求参数 3、发送请求 4、解析结果 5、关闭请求对象 day02: 一、封装http请求工具类:简化请求过程(重要) 1、面向过程式的请求封装:httpRequest(url, data, method) 2、面向对象式的请求封装: class Request{ static get(url, data,GET) static post(url, data,POST) static delete(url, data,DELETE) static put(url, data,PUT) } 3、将后端接口的调用,封装成函数,统一放在api目录下,方便管理。 拓展:能否按照上面的方式使用axios来实现呢? 二、主页搭建:登录成功后显示主页,在主页中需要实现提货、交货、回车登记等核心任务 1、完成主页结构搭建 2、完成我的组件页面布局 3、调用后端接口获取我的个人信息 调用后端接口标准流程: - 分析接口(postman)测试接口如何调用,需要什么数据?返回什么参数?请求方式是什么?具体url? - 定义接口需要的参数及返回的参数数据结构 - 封装api - 在组件中定义接口返回的状态数据 - 定义方法调用api中具体方法获取响应数据 - 在aboutToAppear中调用方法 - 在UI组件中的模拟数据替换中真实的状态数据 day03: 一、修复request请求工具类的bug 二、用户退出,清空token 三、设置Tabs的样式 四、加载待提货的数据 day04: 一、下拉刷新和上拉加载(重要) 1、上拉加载:当该页数据显示底部的时候,还继续向上拖动,则获取下一页的数据4 2、下拉刷新:因为上拉加载后数据会一直保存在数组中,如果后台将数据进行了修改则无法及时更新,这时就需要重新获取数据了。 二、任务详情页 day05: 一、完成任务详情页 二、图片上传 三、提货 day06: 一、显示在途数据,依然使用待提货组件(TaskList),只是传递的参数不同 二、完成回车登记 三、图片预览 四、骨架屏 五、窗口的沉浸式 day07: 一、延迟提货 二、上报异常 1.选择类型 2.选择位置:显示一个地图,获取地图信息,如果显示地图? 鸿蒙提供了原生的Map能力,可以直接通过MapComponent显示地图,但是,window模拟上是不行的!如果是真机或者Mac本可以参考如下: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/map-introduction-V5 在企业环境下,很多技术方案鸿蒙没有提供原生能力,比如,微信支付,目前采用的主流方案就是混合开发方式来解决! 三、Web混合开发 1、什么是混合开发 鸿蒙:ArkTs语言 网页:Html/CSS/JS,前端语言 后端:Java、Python、.Net 混合开发:鸿蒙+网页,鸿蒙提供套壳+web端提供网页的一种交互方式 webview:网页容器 Web组件:类似于浏览器,可以提供一个网页或者网址,通过webview来管理这个资源 2、鸿蒙端和网页端如何通信? a、通过端口进行通信(了解) 鸿蒙和网页各占用一个端口,然后通过该端口进行数据的通信 webviewController.createWebMessagePorts() b、通过方法调用方式(掌握) 在鸿蒙端或者网页端定义业务方法供对方调用(SDK调用) 1、在鸿蒙端提供方法给网页使用 一、定义业务方法 class WebSDK{ 设计业务方法() } 二、注入给前端页面使用 Web({src:xxx,controller:xxx}). javaScriptProxy({ //注入js方法给网页使用 name: 对象名称 object: 对象 methodList: [具体的方法名], controller: xxx }) 三、网页端使用 window.对象名称.具体的业务方法 2、在鸿蒙端调用网页的方法 一、在网页中定义业务方法 function xxx(yyy){ } 二、在鸿蒙端直接使用 xxx.runJavaScript(`网页端的业务方法()`) day08: 一、获取当前的经纬度:定位 1、获取定位权限(权限的级别{normal\system_basic\system_core}?权限的授权方式?{system_grant\user_grant}) ohos.permission.LOCATION:用于获取精准位置,精准度在米级别。 ohos.permission.APPROXIMATELY_LOCATION:用于获取模糊位置,精确度为5公里。 { "name": "ohos.permission.LOCATION", "reason": "$string:permission_desc", "usedScene": { "abilities": [ "EntryAbility" ], "when": "inuse" } }, { "name": "ohos.permission.APPROXIMATELY_LOCATION", "reason": "$string:permission_desc", "usedScene": { "abilities": [ "EntryAbility" ], "when": "inuse" } } 2、用户授权 3、获取定位 geoLocationManager.getCurrentLocation() 二、地图显示 参考高德地图官方手册:https://lbs.amap.com/ day09 day10: 应用发布的流程: 1、生成秘钥和证书请求文件【*.p12, *.csr】 密码:swift123456 别称:swift 2、申请发布证书【*.cer】 https://developer.huawei.com/consumer/cn/console/overview 先创建项目-》添加应用-》添加应用的APP ID-》需要添加项目的包名 3、申请发布的Profile文件【*.p7b】 4、手动配置签名【自动签名和手动签名】【*.p12, *.p7b, *.cer, *.csr】 5、编译打包App 6、上交应用,只能在企业的环境下进行了 面试中常见的项目问题: 1、项目中比较难得点? - 组件封装 - http工具的封装 - 图片上传 - 混合开发 - 布局组件 2、项目实现的核心业务功能是什么? - 提货-》交货-》回车登记 - 消息 - 个人中心 3、项目是否已经上线? - 还没,上线进行中,由于多端适配比较麻烦,华为审核比较苛刻,估计月底完成 4、项目具体做了哪些优化? - 布局 - 动效 - 并发 - 延迟加载 - 使用异步加载 复习重点: 1、状态管理 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-state-management-overview 2、Stage模型 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ability-kit 3、权限控制 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/access-token-overview 4、布局组件 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-layout-development 5、长列表的优化 https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-best-practices-long-list 项目完成后,将项目源码和ppt打包发给我,xupeng@51testing.com,采用腾讯会议的方式进行项目答辩!-》通过的学员进行简历指导-》人事模拟面试-》技术模拟面-》offer