更新时间:2024-06-20 GMT+08:00
组合大屏
当您完成可视化大屏的开发之后,可以将两个或两个以上的大屏创建为一个组合大屏以便用户可以同时查看多个大屏。组合大屏创建完成后,您就可以发布组合大屏,然后将大屏链接分享给其他用户。其他用户就可以在浏览器中或应用程序中通过大屏链接访问该组合大屏。在浏览器查看组合大屏时,用户可以在多个大屏之间来回切换进行查看。
前提条件
创建组合大屏,至少需要选择2个已发布的大屏。有关发布大屏的详细信息,请参见发布大屏。
创建组合大屏
- 登录DLV管理控制台。
- 单击左上角的工作空间下拉列表,在弹出的工作空间面板中,单击需要访问的工作空间,就可以切换到该工作空间。
图1 切换工作空间
- 在“组合大屏”页面,单击“新建组合屏”。
- 在新建组合大屏页面,至少选择2个大屏,然后单击“下一步”。
- 在屏幕排序页面,单击或调整屏幕的先后顺序,然后单击“下一步”。
- 设置组合大屏的名称及相关参数,然后单击“创建”完成组合大屏的创建。
- 组合屏名称:只能包含字母、数字、下划线、中划线、中文字符,且长度不超过32个字符。
- 屏幕左右翻页按钮:若选中该选项,在查看大屏时,就可以单击屏幕左右两侧的翻页按钮切换屏幕。
- 屏幕底部导航:若选中该选项,在查看大屏时,就可以单击屏幕底部的导航按钮切换屏幕。
上述两个选项至少要选中一项,否则,在查看大屏时,将无法切换屏幕。
发布组合大屏
- 登录DLV控制台。
- 进入“组合大屏”页面,找到需要发布的大屏,将鼠标移至该大屏图标之上,然后单击发布按钮。
图2 发布组合屏
- 在弹出的“发布”页面,配置发布参数。
发布状态
开启发布按钮(如图3所示),让其他用户也能访问该大屏。当大屏开启发布状态后,其他用户想要访问大屏时,不需要登录到DLV系统中,只要打开浏览器并在地址栏中输入“分享”参数中的链接就可以访问大屏了。
版本管理
设置用户通过分享链接访问大屏时,允许查看的大屏版本。
- 实时更新发布:当大屏内容有修改时,用户可以即时查看到最新的大屏内容。系统默认选项,不支持删除。
- 历史快照:将当前的大屏内容作为一个版本进行存档,存档后大屏内容的修改不会同步到该历史快照中。当某一个历史快照设置为“分享中”时,用户可以查看该版本的大屏内容。
分享密钥
设置大屏的分享方式。
- 公开分享:不设置密码访问和Token验证时,即为公开分享,用户通过分享链接直接访问大屏。DLV基础版只支持公开分享方式,不支持其他分享方式。
- 密码访问:在“设置访问密码”选项卡开启密码访问,开启后按钮显示为,然后在输入框中设置发布密码。设置密码成功后,用户在浏览器中通过分享链接访问大屏时,每次都需要输入该密码才能访问。
图4 输入发布密码
- Token访问:在“设置Token验证”选项卡开启Token验证访问。
系统会随机生成验证码,您需要记录下这个Token。
图5 设置Token验证
在这个时候,如果您尝试直接打开您所分享的页面,您会收到一个认证失败提示。表示您的访问被拒绝了。
如果您想要打开您所分享的页面,需要完成如下几个步骤:
为了防止重放攻击,请确保您的服务器时间为东8区标准时间,DLV只会提供1分钟的误差,如果时间误差超过1分钟将会验证失败。
- 发布大屏,记录分享的大屏编码(分享链接中share后面的一串字符串)。
- 将大屏编码和当前时间(毫秒)连起来,并用 |(竖线)分隔开。
- 使用 token 通过 HMAC-SHA256 base64 对3.b中的字符串进行加密。
- 将时间和加密后的签名分别命名为dlv_time,dlv_signature。
- 将它们依次放入分享链接的querystring中。
示例如下:
Java:
package com.test; import java.security.*; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; import java.net.URLEncoder; public class ShareWithTokenTest { public static void main(String[] args) throws Exception { System.out.println(getShareUrlWithToken("b668e3b44722467a9477b5b888211bca", "nrU4iher1tyy1C7Jenni3pzJxeIlPz8P")); } public static String getShareUrlWithToken(String shareID, String token){ long time = System.currentTimeMillis(); String data = shareID + "|" + time; String signature = HMACSHA256(data.getBytes(), token.getBytes()); String url = "https://console.huaweicloud.com/dlv/vision/combo/share/?id="+shareID +"&dlv_time="+time+"&dlv_signature="+ signature+"&locale=zh-cn®ion=cn-north-4"; return url; } //采用HmacSHA256进行签名 public static String HMACSHA256(byte[] data, byte[] key) { try { SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256"); Mac mac = Mac.getInstance("HmacSHA256"); mac.init(signingKey); return URLEncoder.encode(Base64.encodeBase64String(mac.doFinal(data))); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } return null; } }
上述代码中的以下参数,请根据实际情况进行替换: System.out.println(getShareUrlWithToken("b668e3b44722467a9477b5b888211bca", "nrU4iher1tyy1C7Jenni3pzJxeIlPz8P")中的b668e3b44722467a9477b5b888211bca为分享链接中share后的参数,nrU4iher1tyy1C7Jenni3pzJxeIlPz8P为分享密钥中的参数。 String url = "https://console.huaweicloud.com/dlv/vision/combo/share/?id="+shareID +"&dlv_time="+time+"&dlv_signature="+ signature+"&locale=zh-cn®ion=cn-north-4"中的locale=zh-cn为语言标识,英文为en-us;region=cn-north-4为服务所在区域
编辑组合大屏
- 登录DLV控制台。
- 进入“组合大屏”页面,找到所需要的组合大屏,将鼠标移至该大屏图标之上,大屏缩略图上将显示一排操作按钮。
图6 管理组合屏
- 单击编辑按钮进入组合大屏的编辑页面。
- 编辑组合大屏的操作和创建组合大屏基本相似,请参考创建组合大屏进行编辑。
预览组合大屏
- 登录DLV控制台。
- 进入“组合大屏”页面,找到所需要的组合大屏,将鼠标移至该大屏图标之上,大屏缩略图上将显示一排操作按钮。
图7 管理组合屏
- 单击预览按钮就可以预览组合大屏。
删除组合大屏
- 登录DLV控制台。
- 进入“组合大屏”页面,找到所需要的组合大屏,将鼠标移至该大屏图标之上,大屏缩略图上将显示一排操作按钮。
图8 管理组合屏
- 单击删除按钮。
- 在弹出的删除确认对话框中,单击“是”将该大屏删除。