智能客服
你问我答,随时在线为你解决问题
通过使用该命令,桌面同屏上多个相同互动ID的百变卡片之间可设计趣味交互,支持按指定方向或者按随机模式进行互动,也可以一张卡片控制多张卡片,让百变卡片不仅可装扮桌面,也可通过互动为用户提供情绪价值。
起始规范版本:HarmonyOS 7.0
是否平台特性:否
锁屏(Lockscreen) | 桌面(Wallpaper) | 一镜到底(LongTake) | 百变卡片(Widget) | 充电动效(ChargingSkin) | |
|---|---|---|---|---|---|
是否支持 | x | x | x | √ | x |
直板机 | 折叠屏 | 平板 | |
|---|---|---|---|
是否支持 | √ | √ | √ |
<CardInteractionCommand interactionId="" mode="" dataName="">
<InteractionData>
<Var name="" expression=""/>
</InteractionData>
</CardInteractionCommand> CardInteractionCommand
参数 | 类型 | 选项 | 注释 |
interactionId | 字符串 | 必填 | 百变卡片互动id,桌面同屏上相同互动id的两个卡片之间可以互动,互动id由ThemeStudio Pro工具自动生成,长度为4的字符串,内容为A-Z或a-z或0-9 |
mode | 数值 | 必填 | 互动模式,桌面同一屏幕上相同互动id的百变卡片,根据卡片在桌面上摆放布局,可以按照以下互动模式实现不同方向的互动。 0:随机模式,桌面同一屏幕,相同互动id的卡片间随机发送互动数据。 1:从触发互动的卡片开始,根据桌面上卡片布局,按照从左到右,从上到下查找可互动的卡片,向查找到的第一张卡片发送互动数据。 2:从触发互动的卡片开始,根据桌面上卡片布局,按照从上到下,从左到右查找可互动的卡片,向查找到的第一张卡片发送互动数据。 3:从触发互动的卡片开始,根据桌面上卡片布局,按照从右到左,从下到上查找可互动的卡片,向查找到的第一张卡片发送互动数据。 4:从触发互动的卡片开始,根据桌面上卡片布局,按照从下到上,从右到左查找可互动的卡片,向查找到的第一张卡片发送互动数据。 5:群发模式,当前卡片向桌面同一屏幕,相同互动id的所有卡片发送互动数据(不包含当前卡片) (1/2/3/4为顺序遍历模式,遍历规则,遍历方向不同,说明如下) |
1/2/3/4为顺序遍历模式,接收互动数据的卡片与用户桌面卡片布局有关,以如下卡片布局为例:
若按照模式0进行互动,用户点击卡片2触发互动,会随机选择其余4张卡片中的一张发送互动数据。
若按照模式1进行互动,根据卡片左顶点的行列坐标,按照从左到右,从上到下对卡片进行排序,排序结果为:1->2->3->4->5,若用户点击卡片2触发互动,优先向卡片3发送互动数据。
若按照模式2进行互动,根据卡片左顶点的行列坐标,按照从上到下,从左到右对卡片进行排序,排序结果为:1->4->2->3->5,若用户点击卡片2触发互动,优先向卡片3发送互动数据;若用户点击卡片4触发互动,优先向卡片2发送互动数据。
若按照模式3进行互动,根据卡片左顶点的行列坐标,按照从右到左,从下到上对卡片进行排序,排序结果为:5->4->3->2->1,若用户点击卡片2触发互动,优先向卡片1发送互动数据;若用户点击卡片4触发互动,优先向卡片3发送互动数据。
若按照模式4进行互动,根据卡片左顶点的行列坐标,按照从下到上,从右到左对卡片进行排序,排序结果为:5->3->2->4->1,若用户点击卡片2触发互动,优先向卡片4发送互动数据;若用户点击卡片5触发互动,优先向卡片3发送互动数据。
若按照模式5进行互动,用户点击卡片2触发互动,卡片1、3、4、5都会收到互动数据。
折叠屏折展、旋转、卡片缩放、删除、跨屏移入移出会导致卡片布局变化,触发卡片互动顺序刷新。

InteractionData
参数 | 类型 | 选项 | 注释 |
initValue | 字符串 | 必填 | 互动数据初始值 (首次添加该互动id的卡片使用初始值),支持表达式 |
defaultValue | 字符串 | 必填 | 互动数据默认值(同一个互动id的卡片添加至桌面多次,显示默认值),支持表达式 |
1、同一个设计师名下的作品,其百变卡片可以使用相同的互动id,互动id由ThemeStudio Pro工具自动生成,手工生成的互动id无效。
2、仅桌面同一屏幕上相同互动id的卡片支持互动。
3、互动命令中声明的变量,在脚本其他地方不要重复声明。
4、若选择模式5(群发模式),则要求所有卡片的模式都必须是模式5,否则无法发送互动数据。
示例一:通过按钮点击触发互动命令,发送卡片互动数据。
<?xml version="1.0" encoding="utf-8"?>
<Widget displayDesktop="true" frameRate="60" screenHeight="1440" screenWidth="1384" version="1">
<Var name="w" const="true" expression="#screen_width" persist="true" />
<Var name="h" const="true" expression="#screen_height" persist="true" />
<Image src="by/byxxx.png" srcid="int(#byAnim)" x="0" y="0" visibility="eq(#imageData,0)"/>
<Image src="by/bydkp.png" srcid="int(#byAnim)" x="0" y="0" visibility="eq(#imageData,1)"/>
<Image src="by/byyyy.png" srcid="int(#byAnim)" x="0" y="0" visibility="eq(#imageData,2)"/>
<Button h="#h" w="#w" x="0" y="0">
<Trigger action="click">
<CardInteractionCommand interactionId="AADS" mode="0">
<InteractionData initValue="0" defaultValue="1">
<Var expression="0" name="imageData" />
</InteractionData>
</CardInteractionCommand>
</Trigger>
</Button>
</Widget>