import
{ liveViewManager }
from
'@kit.LiveViewKit'
;
import
{ Want, wantAgent }
from
'@kit.AbilityKit'
;
export
class
LiveViewController {
private static contentColor: string
=
'#FF000000'
;
private static capsuleColor: string
=
'#FF308977'
;
public async startLiveView(): Promise<liveViewManager.LiveViewResult> {
/
/
校验实况窗开关是否打开
if
(!LiveViewController.isLiveViewEnabled()) {
throw new Error(
"Live view is disabled."
);
}
/
/
创建实况窗
const defaultView
=
await LiveViewController.buildDefaultView();
return
await liveViewManager.startLiveView(defaultView);
}
public async updateLiveView(): Promise<liveViewManager.LiveViewResult> {
/
/
校验实况窗开关是否打开
if
(!LiveViewController.isLiveViewEnabled()) {
throw new Error(
"Live view is disabled."
);
}
/
/
修改实况窗内容
const defaultView
=
await LiveViewController.buildDefaultView();
defaultView.liveViewData.primary.title
=
"预计23:49送达"
;
defaultView.liveViewData.primary.content
=
[
{ text:
"等待商家接单,"
,
textColor: LiveViewController.contentColor },
{ text:
"03:20未接单自动取消"
,
textColor: LiveViewController.contentColor }
];
defaultView.liveViewData.primary.layoutData
=
{
layoutType: liveViewManager.LayoutType.LAYOUT_TYPE_PROGRESS,
progress:
0
,
lineType:
0
,
nodeIcons: [
/
/
进度条每个节点图标,取值为
"/resources/rawfile"
路径下的文件名
'icon_store_white.png'
,
'icon_finish.png'
]
};
defaultView.liveViewData.capsule
=
{
type
: liveViewManager.CapsuleType.CAPSULE_TYPE_TEXT,
status:
1
,
icon:
'capsule_store.png'
,
backgroundColor: LiveViewController.capsuleColor,
title:
"待接单"
};
/
/
更新实况窗
return
await liveViewManager.updateLiveView(defaultView);
}
public async stopLiveView(): Promise<liveViewManager.LiveViewResult> {
/
/
校验实况窗开关是否打开
if
(!LiveViewController.isLiveViewEnabled()) {
throw new Error(
"Live view is disabled."
);
}
/
/
修改实况窗内容
const defaultView
=
await LiveViewController.buildDefaultView();
defaultView.liveViewData.primary.title
=
'商品已送达'
;
defaultView.liveViewData.primary.content
=
[
{ text:
'感谢您的认可,'
,
textColor: LiveViewController.contentColor },
{ text:
'期待下一次光临'
,
textColor: LiveViewController.contentColor }
];
defaultView.liveViewData.primary.layoutData
=
{
layoutType: liveViewManager.LayoutType.LAYOUT_TYPE_PROGRESS,
progress:
100
,
lineType:
0
,
nodeIcons: [
/
/
进度条每个节点图标,取值为
"/resources/rawfile"
路径下的文件名
'icon_order.png'
,
'icon_finish.png'
]
};
defaultView.liveViewData.capsule
=
{
type
: liveViewManager.CapsuleType.CAPSULE_TYPE_TEXT,
status:
1
,
icon:
'capsule_gps.png'
,
backgroundColor: LiveViewController.capsuleColor,
title:
'已送达'
};
/
/
结束实况窗
return
await liveViewManager.stopLiveView(defaultView);
}
private static async buildDefaultView(): Promise<liveViewManager.LiveView> {
return
{
/
/
构造实况窗请求体
id
:
0
,
/
/
实况窗
ID
,开发者生成。
event:
"DELIVERY"
,
/
/
实况窗的应用场景。DELIVERY:即时配送(外卖、生鲜)
liveViewData: {
primary: {
title:
"餐品待支付"
,
content: [
{ text:
"咖啡 "
, textColor:
"#FF000000"
},
{ text:
"等2件商品"
, textColor:
"#FF000000"
}
],
keepTime:
15
,
clickAction: await LiveViewController.buildWantAgent(),
layoutData: {
layoutType: liveViewManager.LayoutType.LAYOUT_TYPE_PICKUP,
title:
"待支付金额"
,
content:
"25.5元"
,
underlineColor:
"#FF0A59F7"
,
descPic:
"coffee.png"
}
},
/
/
实况胶囊相关参数
capsule: {
type
: liveViewManager.CapsuleType.CAPSULE_TYPE_TEXT,
status:
1
,
icon:
"capsule_store.png"
,
backgroundColor:
"#FF308977"
,
title:
"待支付"
,
content:
"..."
}
}
};
}
... ...
}