# 技术方案

# 注:大卡片、小组件、灵动岛脚本代码需维护在同一份文件上,根据不同字段内容区分

# 原生脚本交互接口

  • 原生入参示例:
{
    "deviceSn": "000000P0000000Q1A0681CAE921C0000",
    "deviceId": "24189255812085",
    "reqId": "4c99607f99b41df7d91b0cdeddb38799",
    "createTime": "2023-06-15 08:55:13 +0000",
    "deviceStatus": {},
    "isOnline": "0/1"
}
// deviceId/deviceID:设备id,
// deviceStatus:设备状态
// isOnline:设备在线离线状态,String类型,0:离线;1:在线

# 脚本输出结果

  • 脚本输出结构示例:
{
    "display": true,
    "setTimeout": 1.5,
    "compact": {},
    "minimal": {},
    "expanded": {},
    "locked": {}
}

# 显示隐藏控制字段

    "display": true, // 控制灵动岛显示/隐藏,true:显示;false:隐藏
    "setTimeout": 1.5, // Double型,显示/隐藏的延迟时间,传0则立即显示/隐藏

# 灵动岛常规状态:compact

"compact": {
    "left": {
        "type": "icon", // 展示类型,icon:图标;value:数值/text;language:多语言key
        "value": "", // type为value/language时,使用该字段,传入具体值/多语言key
        "placeholderImage": "", // 占位图,传本地资源图片名;若无,传全品类通用占位图或空字符串;仅传文件名,前后缀原生拼接,异常状态直接传异常icon图片名
        "iconFromHttp": "", // icon地址,网络资源文件名,若无,则使用placeholderImage
        "error": false, // 是否异常,true:展示黄色
    },
    "right": {
        "type": "icon", // 展示类型,icon:图标;value:数值/text;language:多语言key
        "value": "", // type为value/language时,使用该字段,传入具体值/多语言key
        "placeholderImage": "", // 占位图,传本地资源图片名;若无,传全品类通用占位图或空字符串;仅传文件名,前后缀原生拼接,异常状态直接传异常icon图片名
        "iconFromHttp": "", // icon地址,网络资源文件名,若无,则使用placeholderImage
        "error": false, // 是否异常,true:展示黄色
    }
}

# 灵动岛简短状态:minimal

"minimal": {
    {
        "placeholderImage": "", // 占位图,传本地资源图片名;若无,传全品类通用占位图或空字符串;仅传文件名,前后缀原生拼接,异常状态直接传异常icon图片名
        "iconFromHttp": "", // icon地址,网络资源文件名,若无,则使用placeholderImage,异常状态直接传异常icon图片名
    }
}

# 灵动岛展开状态:expanded

"expanded": {
    "placeholderImage": "", // 占位图,传本地资源图片名;若无,传全品类通用占位图或空字符串;仅传文件名,前后缀原生拼接
    "iconFromHttp": "", // icon地址,网络资源文件名,若无,则使用placeholderImage
    "mainType": "language", // mainTitle类型,language:多语言key;value:数值/text
    "mainTitle": "", // subTitle无值,显示成大字体;subTitle有值,显示成小字体
    "subType": "language", // subTitle类型,language:多语言key;value:数值/text
    "subTitle": "", // 有值,显示成大字体;
    "trailingType": "value", // trailingString类型,language:多语言key;value:数值/text
    "trailingString": "1h55m", // 右侧显示内容文案
    "progress": 0.55, // 0.00~1.00的Double类型,代表进度条进度
    "errorIcon": "", // 异常icon,没异常则传空字符串
    "errorMsg": "", // 异常信息,没异常则传空字符串,只支持多语言key
}

# 灵动岛锁屏状态:locked

  • 锁屏状态展示数据与展开状态基本一致,考虑到可能存在的样式布局问题,预留区分
"locked": {
    "placeholderImage": "", // 占位图,传本地资源图片名;若无,传全品类通用占位图或空字符串;仅传文件名,前后缀原生拼接
    "iconFromHttp": "", // icon地址,网络资源文件名,若无,则使用placeholderImage
    "mainType": "language", // mainTitle类型,language:多语言key;value:数值/text
    "mainTitle": "", // subTitle无值,显示成大字体;subTitle有值,显示成小字体
    "subType": "language", // subTitle类型,language:多语言key;value:数值/text
    "subTitle": "", // 有值,显示成大字体;
    "trailingType": "value", // trailingString类型,language:多语言key;value:数值/text
    "trailingString": "1h55m", // 右侧显示内容文案
    "progress": 0.55, // 0.00~1.00的Double类型,代表进度条进度
    "errorIcon": "", // 异常icon,没异常则传空字符串
    "errorMsg": "", // 异常信息,没异常则传空字符串,只支持多语言key
}