通用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实例后发送回调和自定义事件,发送的是数据源的数组中当前点位的数据。
自定义动作
暂无