跳到主要内容
知识地图surface:怎样把另一个资源或界面放进来?ArcBlock 体系

你在这里。看看这个问题与其他知识怎样相连。

选择节点前往页面 · 展开后可留在地图中阅读

知识地图沿着连接,读懂一个问题
← AFS 与界面

一个问题

surface:怎样把另一个资源或界面放进来?

surface 提供嵌入呈现的边界,连接资源或远端 AUP。

在一个界面中放入另一个资源视图时,需要知道来源、连接方式与能力约束。surface 注册描述支持 AFS 路径以及远端 AUP 连接。可嵌入不表示权限合并,也不保证所有子界面共享同一份状态。

先认识这些属性

renderConstraints 限定子视图可采用的呈现类型或尺寸。这里的 capabilities 是它的兼容别名,新配置优先用 renderConstraints;不要把这个属性当成资源读写权限。showStatus 控制连接状态提示。

connect、disconnect、error 描述连接与异常状态。它们不能代替业务操作自己的成功或失败结果。

读一个结构例子

以下摘自源码注册示例。它展示结构,未在本页运行;示例中的路径和动作需要应用提供。

json
{
  "id": "afs-surface",
  "type": "surface",
  "src": "/modules/smart-home",
  "props": {
    "showStatus": true,
    "renderConstraints": {
      "primitives": [
        "view",
        "text",
        "action",
        "chart"
      ]
    }
  }
}

例子从 /modules/smart-home 取得嵌入来源,并把呈现词汇限制为四种类型。这是在声明呈现范围,不表示这个路径已经可访问,也不把子界面的权限合并到父界面。连接指示正常,还需分别确认资源加载和具体动作结果。

查看 surface 的技术文档。

检查一下理解

把一个子界面嵌入页面后,能否假设两者权限相同?

不能。嵌入边界仍需要明确来源、能力与访问权限。