注册副屏应用和快捷卡片
「副屏应用」和「快捷卡片」功能介绍
下图摘自 Zepp OS 系统设计规范,展示了 Zepp OS 部分主要界面,以及界面之间切换的逻辑。
「副屏应用」
从表盘页面左滑,进入 Widget 1 页面,整个 Widget 1 页面就是一个「副屏应用」,在 Widget 1 页面左滑,进入 Widget 2 页面,Widget 2 页面同样是一个「副屏应用」,依此类推。
下图为「副屏应用」的运行效果:
在系统设置中可以对「副屏应用」进行添加、删除、排序等操作,具体操作路径为
设置 => 使用偏好 => 副屏应用 => 界面底部的添加 icon
部分设备不支持「副屏应用」,在 设备基本信息 中查询副屏应用的支持情况
「快捷卡片」
在表盘页面右滑,进入「Negative Screen」页面,页面为一个纵向长列表,包含一系列的「快捷卡片」
下图为「快捷卡片」的运行效果:
在快捷卡片设置中可以对「快捷卡片」进行添加、删除、排序等操作,具体操作路径为
快捷卡片页面下拉至最底部 => 点击设置 icon => 界面底部添加 icon
两者功能简单对比
- 快捷卡片
- 更侧重「快捷」,提供快速访问入口
- 绘图区域更为紧凑,只能容纳核心 信息
- 副屏应用
- 更侧重「信息展示」,可以承载更多信息
- 更适合做图表类展示
副屏应用和快捷卡片能力开放
自 Zepp OS 诞生以来一直延续这样的界面框架,「副屏应用」和「快捷卡片」快捷和美观的特点得到广大用户的好评。
拓展系统开放能力是 Zepp OS 团队的一个重要目标,在全新推出的 2.0 版本中,我们将小程序的运行场景拓展到了副屏应用和快捷卡片。
接下来的章节,会以「副屏应用」为例,进行一个快速上手,创建一个简单的「副屏应用」。
在开始之前,先介绍一些相关背景:
- 「副屏应用」和「快捷卡片」是小程序的一部分,类似「伴生应用」,他们都是可选的,一个小程序可以包含多个独立的「副屏应用」或「快捷卡片」,总上限为 5 个
- 「副屏应用」和「快捷卡片」必须在支持 API_LEVEL 2.0 及以上的设备才可以使用
- 「副屏应用」和「快捷卡片」的绘图区域有边界限制,只可以在给定的边界内,绘制 UI 控件,具体限制下文会展开说明
- 无法响应滑动、手势、 按键事件,只响应屏幕点击事件,通常点击后会跳转到相应的主程序,比如点击「天气」副屏应用,跳转至「天气」应用
- 凡是涉及到滚动、滑动以及图层堆叠相关的 UI 控件,都无法使用,如 SCROLL_LIST、VIEW_CONTAINER
- 「快捷卡片」无法使用 GROUP 控件
「副屏应用」的构造函数是 SecondaryWidget
,「快捷卡片」的构造函数 AppWidget
,下文中如果出现了 SecondaryWidget
,代表「副屏应用」,AppWidget
代表「快捷卡片」。
快速起步:创建一个「副屏应用」
- 使用 Zeus CLI 工具,创建模版项目
zeus create widget-demo
选择使用 OS 2.0 API,模版选择 Empty
- 创建「副屏应用」相关目录和文件
.
├── app-side
│ ├── i18n
│ │ └── en-US.po
│ └── index.js
├── app.js
├── app.json
├── assets
│ └── 466x466-gtr-4
│ └── icon.png
├── global.d.ts
├── jsconfig.json
├── package-lock.json
├── package.json
├── page
│ ├── i18n
│ │ └── en-US.po
│ └── index.js
├── secondary-widget // new directory
│ └── index.js
└── setting
├── i18n
│ └── en-US.po
└── index.js
index.js 文件内容见下文
// index.js
import { createWidget, widget, align, text_style } from '@zos/ui'
SecondaryWidget({
build() {
const text = createWidget(widget.TEXT, {
x: 96,
y: 120,
w: 288,
h: 46,
color: 0xffffff,
text_size: 36,
align_h: align.CENTER_H,
align_v: align.CENTER_V,
text_style: text_style.NONE,
text: 'HELLO, Zepp OS'
})
}
})
- 在 app.json 中加入「副屏应用」相关配置
"targets": {
"466x466-gtr-4": {
"module": {
"page": {
"pages": [
"page/index"
]
},
"app-side": {
"path": "app-side/index"
},
"setting": {
"path": "setting/index"
},
// widget related configuration
"secondary-widget": {
"widgets": [
{
// widget file path
"path": "secondary-widget/index",
"icon": "icon.png",
"name": "widget-demo",
"runtime": {
"type": "js"
}
}
]
}
},
- 打开模拟器到项目根目录运行
zeus dev
命令
在模拟器的设置中,就可以找到名为 widget-demo
的「副屏应用」,点击添加,返回表盘页面,向左滑动即可看到效果。
至此,就完成了「副屏应用」创建,除了文中提到的部分限制外,其余 API 都可正常使用,可以尽情发挥想象力。