20.细解鸿蒙之元服务UX上架标准-多窗适配

158 阅读7分钟

细解鸿蒙之元服务UX上架标准-多窗适配

是否必须遵守:必须

标准项描述:

在应用程序开发过程中,多窗适配检查是指针对应用在多窗口环境下进行适配性的全面检查。多窗模式允许用户同时打开多个窗口并进行交互,这就要求应用在不同窗口的大小、布局、功能等方面都能良好地适应。以下详细解释:

多窗适配检查的具体内容

窗口布局

  • 尺寸与比例:检查应用窗口在不同大小和比例下的布局情况。例如,在不同分辨率的屏幕上,窗口的尺寸可能会有所不同,需要确保窗口内的元素能够合理地排列和显示。比如在宽屏显示器上,窗口可能会更宽,元素之间的间距、排列方式等都要进行调整,以适应不同的屏幕尺寸。

  • 布局策略:确定应用在多窗模式下的布局策略。这可能包括将不同功能模块分配到不同窗口,或者在窗口之间建立关联。例如,一个办公软件可能在一个窗口展示文档编辑界面,另一个窗口显示文件管理功能,窗口之间需要有合理的布局和交互方式,以方便用户操作。

  • 响应式设计:应用要具备响应式设计,能够根据窗口大小自动调整布局。当窗口大小改变时,应用的布局应该能够相应地调整,确保所有元素都能在新的窗口尺寸下正常显示。例如,当窗口缩小或放大时,元素的大小、位置、排列方式等都要随之变化,以保证用户在不同窗口尺寸下都能获得良好的视觉体验。
    功能交互

  • 跨窗口操作:检查应用在多窗模式下的跨窗口操作功能。例如,用户可能需要在不同窗口之间进行复制、粘贴、拖放等操作,应用要确保这些操作能够顺利进行。比如在一个图形设计软件中,用户可能需要在一个窗口中选择图形元素,然后拖放到另一个窗口进行编辑。

  • 数据共享:多窗模式下,不同窗口之间可能需要共享数据。检查应用是否能够在不同窗口之间传递和共享数据,并且确保数据的一致性和完整性。例如,在一个办公软件中,不同窗口可能共享同一份文档数据,用户在一个窗口修改数据后,其他窗口能够及时更新。

  • 功能同步:应用在多窗模式下的功能同步也是重要的检查内容。例如,当用户在一个窗口进行操作时,其他窗口的相关功能应该能够同步更新。比如在一个视频编辑软件中,用户在一个窗口调整视频播放进度,另一个窗口的视频画面也应该同步更新。
    视觉效果

  • 窗口间的视觉一致性:检查应用在多窗模式下窗口之间的视觉一致性。包括窗口的颜色、字体、图标等元素的一致性。例如,不同窗口的风格应该统一,避免出现视觉上的冲突。如果一个窗口的字体颜色和另一个窗口的字体颜色不一致,会影响用户的视觉体验。

  • 过渡效果:在多窗模式下,窗口之间的过渡效果也需要检查。例如,当用户切换窗口时,窗口之间的过渡动画应该平滑、自然。比如在一个应用程序中,当用户打开一个新窗口时,窗口之间的过渡动画应该能够让用户感受到一种流畅的视觉体验。

  • 整体视觉效果:检查应用在多窗模式下整体的视觉效果。包括窗口的布局、内容展示、视觉元素等方面。例如,窗口之间的排列方式、窗口的大小、窗口内的内容等都要符合整体的视觉效果。一个布局合理、视觉效果良好的多窗应用能够提升用户的视觉体验。
    兼容性

  • 操作系统兼容性:检查应用在不同操作系统上的多窗适配情况。不同操作系统对多窗模式的支持方式可能不同,应用需要确保在各种操作系统上都能正常运行。例如,在 Windows、MacOS、Linux等操作系统上,应用的多窗功能可能会有所差异,需要进行相应的适配。

  • 设备兼容性:考虑不同设备类型(如手机、平板电脑、电脑等)对多窗模式的支持。不同设备的屏幕尺寸、分辨率、硬件性能等都可能影响应用的多窗适配。例如,在手机上,屏幕尺寸较小,应用需要适应不同的屏幕尺寸和分辨率;在平板电脑上,屏幕尺寸较大,应用可能需要利用更大的屏幕空间进行布局。

  • 浏览器兼容性:如果应用在浏览器中运行,还需要检查浏览器对多窗模式的兼容性。不同浏览器对多窗功能的支持方式可能不同,应用需要确保在各种浏览器上都能正常显示和功能。例如,在不同浏览器上,应用的多窗功能可能会出现不同的表现,需要进行相应的适配。

多窗适配检查的意义

提升用户体验:多窗适配检查能够使应用在多窗口环境下更加方便、快捷地进行操作,提高用户的工作效率和生活质量。用户可以在不同窗口之间进行切换、操作,同时处理多个任务,满足不同的需求。
增强应用功能:通过多窗适配检查,应用能够更好地发挥其功能,实现更复杂的业务逻辑。例如,在一个办公软件中,用户可以同时打开多个窗口进行不同的工作,提高工作效率。
扩大应用的适用范围:多窗适配检查可以使应用在不同设备、操作系统和浏览器上都能正常运行,扩大应用的适用范围。无论是在手机、平板电脑还是电脑上,用户都能享受到应用的多窗功能。
提高应用的竞争力:在市场竞争激烈的环境下,多窗适配检查能够使应用在多窗口环境下脱颖而出,吸引更多用户。用户更愿意使用能够在多窗模式下良好运行的应用,因此应用的竞争力也会得到提高。 --javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown

@Component
export struct Question2Incorrect {
  // 存储视频的宽高比,默认值为 9/16
  @State aspect: number = 9 / 16; 
  // 根据默认显示的高度和宽高比计算组件的宽度,并将其转换为 vp 单位
  @State xComponentWidth: number = px2vp(display.getDefaultDisplaySync().height * this.aspect);
  // 获取默认显示的高度,并将其转换为 vp 单位
  @State xComponentHeight: number = px2vp(display.getDefaultDisplaySync().height );
  //...

  build() {
    // 创建一个导航目的地组件
    NavDestination() {
      // 创建一个栈组件
      Stack() {
        // 创建一个 XComponent 组件,可能用于显示视频,设置了 id、类型和控制器
        XComponent({ id: 'video_player_id', type: XComponentType.SURFACE, controller: this.xComponentController })
          // 设置 XComponent 的宽度,使用之前计算的宽度
         .width(this.xComponentWidth)
          // 设置 XComponent 的高度,使用之前计算的高度
         .height(this.xComponentHeight)
      }
      // 设置栈组件的宽度为 100%
    .width('100%')
      // 设置栈组件的高度为 100%
    .height('100%')
      // 设置栈组件的背景颜色为黑色
    .backgroundColor(Color.Black)
    }
    // 隐藏标题栏
  .hideTitleBar(true)
  }
}

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