37.细解鸿蒙之元服务UX上架标准-开合连续性

139 阅读4分钟

细解鸿蒙之元服务UX上架标准-开合连续性

是否必须遵守:涉及则必须

标准项描述:

在应用或元服务的开合过程中,所谓的 “体验连续” 指的是用户在操作应用或元服务的打开与关闭过程时,感受到一种连贯、流畅且自然的体验。这一过程涉及到多个方面的要素,下面详细解释:

界面过渡

视觉效果:在应用打开过程中,从启动画面到主界面的过渡应该是平滑且自然的。例如,应用的启动画面可能会以淡入的方式逐渐显示,随后主界面的元素会依次加载并呈现。关闭时,界面元素会以淡出的方式逐渐消失,给用户一种连贯的视觉感受。这种过渡避免了突兀和生硬的变化,让用户在操作过程中感受到一种和谐的视觉体验。
动画效果:动画效果在应用开合过程中起到重要作用。例如,当应用打开时,界面元素可能会以动画形式展开,如从中心向四周扩散,或者从底部向上滑动。关闭时,元素会以动画形式收缩,如逐渐缩小并消失。这些动画效果不仅增加了视觉上的吸引力,还让用户感受到一种动态的变化,使操作过程更加流畅。

操作响应

响应速度:应用的开合过程应该快速响应用户的操作。当用户点击打开应用时,应用应迅速启动并加载相关资源,尽快呈现主界面。关闭应用时,应用也应及时响应,快速关闭并释放资源。这种快速响应确保用户在操作过程中不会感到等待时间过长,从而提高用户体验。
交互反馈:在应用开合过程中,用户应该得到明确的反馈。例如,当应用打开时,会有一个短暂的加载动画提示用户应用正在启动。关闭应用时,会有一个确认提示框,告知用户应用即将关闭。这些反馈让用户了解应用的状态,增强用户对操作的掌控感。

功能保持

数据一致性:应用在开合过程中应保持数据的一致性。例如,在打开应用时,用户上次保存的文件、设置等信息应该能够正确加载。关闭应用时,所有未保存的数据应该得到妥善处理,避免数据丢失。这种数据一致性确保用户在操作过程中不会因为数据的变化而感到困惑。
功能完整性:应用的功能在开合过程中应该保持完整。例如,应用在打开时应能够正常运行所有功能,关闭时应能够正确退出并释放资源。如果应用在打开或关闭过程中出现功能异常或损坏,会影响用户体验。

意义

提升用户体验:体验连续的开合过程能够让用户感受到一种愉悦和舒适的操作体验。用户在操作过程中不会感到突兀和生硬,而是能够自然地完成应用的打开和关闭。这种体验提升了用户对应用的满意度,使用户更加愿意使用该应用。
增强用户信任:连续的体验让用户感受到应用的稳定性和可靠性。用户相信应用在开合过程中能够正常运行,不会出现意外情况。这种信任增强了用户对应用的信心,促进用户与应用之间的长期关系。
提高工作效率:体验连续的开合过程能够提高用户的工作效率。用户在操作过程中能够快速完成应用的打开和关闭,减少操作时间和精力。这对于需要频繁使用应用的用户来说尤为重要。--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

// xxx.ets
// 标记为入口组件
@Entry
// 声明为组件
@Component
struct Index {
  // 存储一个布尔状态,用于控制图像的显示和隐藏
  @State isShow: boolean = false;

  build() {
    // 创建一个 Stack 组件,子元素在内容区域内居中对齐
    Stack({ alignContent: Alignment.Center }) {
      // 根据 isShow 状态变量的值显示不同的内容
      if (this.isShow) {
        // 显示一张图片
        Image($r('app.media.pic'))
          // 禁止自动调整大小
         .autoResize(false)
          // 启用裁剪
         .clip(true)
          // 图片的宽度为 300
         .width(300)
          // 图片的高度为 400
         .height(400)
          // 图片在 y 轴上偏移 100 个单位
         .offset({ y: 100 })
          // 应用几何过渡效果,绑定名称为 "picture",不跟随父容器
         .geometryTransition("picture", { follow: false })
          // 应用透明度转场效果
         .transition(TransitionEffect.OPACITY)
      } else {
        // 创建一个 Column 容器,用于嵌套结构
        Column() {
          // 内部的 Column 容器
          Column() {
            // 显示一个图标图片,宽度和高度都为 100% 填满父容器
            Image($r('app.media.icon'))
             .width('100%').height('100%')
          }
          // 内部 Column 容器的宽度和高度都为 100% 填满父容器
       .width('100%').height('100%')
        }
        // 外部 Column 容器的宽度为 80
       .width(80)
        // 外部 Column 容器的高度为 80
       .height(80)
        // 设置外部 Column 容器的边框半径为 20
       .borderRadius(20)
        // 启用裁剪
       .clip(true)
        // 应用几何过渡效果,绑定名称为 "picture"
       .geometryTransition("picture")
        // 应用透明度转场效果,保证组件离场时不会立即析构
       .transition(TransitionEffect.OPACITY)
      }
    }
    // 为 Stack 组件添加点击事件处理函数
   .onClick(() => {
      // 启动动画,持续时间为 1000 毫秒,切换 isShow 的状态
      animateTo({ duration: 1000 }, () => {
        this.isShow =!this.isShow;
      });
    });
  }
}

PS:实际项目中如有出入,请告知博主,博主会第一时间修改得哇~