通用3D-iframe子组件

iframe子组件可以把任意一个网页嵌入到3D场景中,不过能正常显示的前提是符合iframe嵌入的规范和约束。受限于技术实现,当前iframe子组件只能始终位于3D场景中其他物体的上层,也就是说会一直遮挡其他物体。

一个iframe子组件可以在数据中添加多个对象,生成多个iframe实例

嵌入iframe之后,可以使用iframe通信技术与主页面或其他iframe实例通信,不过有一些安全策略的限制,iframe通信的技术及其限制可以参阅https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

关于iframe嵌入的相关知识可以参阅https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies

配置项

状态

状态配置项是一个数组,可以设置多个状态,通过状态值与数据中的status字段匹配,实现多样式配置。

状态值

状态值是一个自定义的标识。在渲染每个的iframe实例时,会与状态配置项下每个状态的状态值逐一进行比较,如果匹配成功,则这个iframe实例会使用这个状态的配置作为自己的样式;如果某个iframe实例没有匹配到任何状态,则它默认会使用状态配置项下的第一个状态作为自己的样式。

权限

设置iframe的权限,如果嵌入的iframe中会需要相关权限的支持,则必须显式地启用相关权限,才能使得iframe网页正常工作。每个权限的说明如下:

  • 摄像头:允许iframe使用摄像头
  • 麦克风:允许iframe使用麦克风

关于iframe的权限可以参阅https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Permissions_Policy

尺寸

iframe的显示尺寸,也是iframe自身的窗口大小。

基准点

设置iframe实例的基准点,是一个锚点。(关于锚点的介绍可以参见《通用知识 - 锚点》

iframe实例的位置是根据经纬度映射在场景中的世界坐标,而基准点设置的是iframe实例上对齐到场景中的世界坐标的那个点。

一般设置“50% 100%“,这样仿佛iframe面板立在经纬度对应的点位上。

数据

数据源中可以接入一个数组,数组的每个元素是一个对象,每个对象有4个字段,一个数据的示例如下:

[
  {
    "lng": 119.18999,
    "lat": 28.292142,
    "status": "正常",
    "url": "https://www.baidu.com"
  }
]

lng和lat

lng和lat分别是每个iframe实例的经纬度

status

数据中的status字段会与配置项中每个状态的状态值逐一进行比较,匹配成功则使用该状态作为iframe实例的样式。如果缺省这个字段,或者这个字段值为空,则默认使用第一个状态作为iframe实例的样式。

url

嵌入的iframe的url,必须符合iframe的嵌入规则才能正常显示。

交互

回调和自定义事件

该子组件中回调和自定义事件有着完全相同的触发时机,并且发送完全一样的数据,所以二者综合起来说明。

鼠标点击

鼠标点击某个iframe实例后发送回调和自定义事件,发送的是数据源的数组中当前点位的数据。

自定义动作

暂无

400-8505-905复制
免费试用
在线咨询
微信社区
易知微-数据可视化
微信扫一扫入群