# HarmonyOS-Dingding **Repository Path**: wdbbdpd/harmony-os-dingding ## Basic Information - **Project Name**: HarmonyOS-Dingding - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-05-09 - **Last Updated**: 2024-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 移动办公项目 - 开发团队 : 小灰狼团队 ## 目录结构 ```text - ets entryability/ - components/ 全局公共组件 - pages/ 所有的页面内容 - Index.ets 项目首页 - Welcome/ 欢迎页面 - components/ 私有组件( 存放给 Welcome 用的组件 ) - ... - utils/ 全局封装的工具函数 - models/ 全局的模块( 对数据的限制, 如果比较多, 可以分开文件夹, 中等, 分开文件, 如果小, 一两个文件够用 ) - config/ 全局配置项( 存放一些全局配置 ) + index.ts 比如: 配置一个全局颜色( 主色调 ) ``` - 例子: 更换全局主色调 + 如果你想实现全局主题的更换, 我们建议使用首选项 + 目前: 先用本地配置文件实现( 把所有项目内容都完成以后, 才好决定哪些内容防放在首选项内 ) + 最后这个 config 文件夹的意义, 就是把所有的内容全部分门别类放好 ## 项目初始化 ## 添加 readme.md 文件 ## 确定欢迎页面 > 一般的逻辑是 > 打开应用进入欢迎页面, 开始倒计时 > 倒计时到位以后, 跳转到首页 - 思考 : 我的项目默认展示页是 index.ets - 情况1: 用 index.ets 当做 欢迎页面 - 单独去书写一个首页 - 情况2: 单独书写一个 welcome.ets 页面 - index.ets 当做首页 - 你就需要设置一下应用首页 - 启动应用的时候, 应该展示哪一个页面 ## 5.13 日授课内容 - 一个功能 : 打卡 - 涉及到的内容 : - 手机访问权限 `位置` `精确定位` `相机` `媒体文件的权限` `网络通讯权限` - 权限校验 : 用户是否开启了权限 - 动态请求权限 - 读取到文件以后, 如何上传 - HarmonyOS 是提供了对应的 API 的 - 但是提供的 API 非常的麻烦 - 对官方提供的 API 进行二次封装 - 盘一个逻辑 - 说明 : - 因为我没有大数据人脸识别( 拍照上传, 表示打卡成功 ) - 通过经纬度的定义, 判断范围, 决定你是否可以打卡 ### 1. 首选项存储 - 因为我要在登录以后, 把当前用户信息存储起来 - 因为考勤页面, 如果没有登录, 不可以访问 - 包括打卡这个功能, 如果没有登录, 也不可以访问 - 咱们之前封装过 - 直接拿过来使用即可 ### 2. 封装权限操作部分的内容 - 分析我们都做了什么 1. checkAccessToken ( 验证权限的工具 ) 2. checkPermissions ( 验证权限的功能函数 ) 3. createPermission ( 引导用户开启权限验证弹窗 ) 4. openPermissionPage ( 引导用户跳转到 app 应用设置界面 ) 5. getLocationInfoHandler ( 获取地理位置 ) - 分析我们将来可能要做的事情 1. 根据地理位置计算距离 ( duration ) 2. 根据计算出来的距离去判定是否允许打卡 - 分析以上这些内容( 功能, 工具, 逻辑 ) - 工具( checkAccessToken, checkPermissions, createPermission, openPermissionPage ) - 功能( 利用工具, 去实现一些目的的能力 )( 校验位置的功能, 校验相机的功能, 校验媒体的功能, ... ) - 逻辑( getLocationInfoHandler, 根据地理位置计算距离, 根据计算出来的距离去判定是否允许打卡 ) - 分析封装方案 - 必然: 需要一个函数, 来接受参数( 你需要校验的权限列表, 返回校验成功或者失败 ) - 你准备如何设计这个函数( 参数, 返回值 ) - 小灰狼封装原则 + 是否涉及异步( 有 => 必然 Promise ) + 是否涉及回调函数( 有 => 必然 Promise ) + 能省参数就省( 分清主次 ) + 开放封闭原则( 开放接口, 封闭修改 ) + 不是万不得已( 对于工具和功能不用类 ) + 个人用还是公开( 个人 => Promise 不喜欢写 reject ) - 盘封装逻辑 1. checkPermissions 函数出场 - 如果开启 => 直接走逻辑, 不需要后续的验证( 弹窗, 跳转应用 app 设置 ) - 如果关闭 => createPermission - 返回值 : 布尔值( 通过布尔值决定步骤2是否执行 ) 2. createPermission 函数出场( 弹出一个窗口 ) - 如果用户授权了 => 直接走逻辑, 不需要后续( 跳转应用 app 设置 ) - 如果用户没有授权 => openPermissionPage - 返回值 : 布尔值( 通过布尔值决定步骤3是否执行 ) 3. openPermissionPage( 跳转应用 app 设置 ) - 只是跳转过去了还是没去 - 不去 => 没有办法了, 咋着用户也不授权( 执行没有权限的后续操作 ) - 去了 => 回来的时候, 我得再次校验( 不确定用户真的授权了 ) - 返回值 : 布尔值( 通过布尔值决定后续 逻辑 是否继续 ) 4. 你只要涉及到授权, 都会关系到上面三个函数 - 利用一个函数, 把上面的三个函数合并到一起 - 才方便今后使用相对应的工具