以动态加载同源入口模块实现网页应用接口,启动另一个豫言浏览器应用。
源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。
# 网页应用浏览器适配
`应用。豫` 实现[网页应用接口](../../../豫言操作系统接口/网页应用/规范.汉语.md)的全部函数:`启动页面应用`。`实现接口。豫` 固定公共包身份与版本,接口检查器须在构建前核对签名。
**宿主原语**:适配只调用 `豫言_浏览器_网页能力`(同步)与 `豫言_浏览器_网页能力异步`(需要等待的操作)两个原语,操作名为 `应用.启动`(异步,经 `豫言_浏览器_网页能力异步`);失败以(阴,错误文)返回,再由本适配转成豫言事故,不让 JavaScript 异常越过 Wasm 边界。
**宿主实现**:`宿主/浏览器/宿主.mjs` 的 `创建网页能力`。宿主校验入口路径(同源、以 `/入口.mjs` 结尾、无 `..`/查询/片段),用 `import()`(可经 `创建浏览器宿主({导入模块})` 注入)加载模块,调用其 `启动豫言浏览器应用()`,等待子应用就绪(30 秒超时);同一路径只能启动一次,最多 8 个;宿主关闭时一并关闭子应用。
**运行要求**:等待类函数挂起豫言栈,浏览器须支持 JSPI;八个新包与网页事件包共用同一个统一事件队列。
**验收**:一致性验证见 `../网页定时/一致性验证/`(探针应用 `前端接口探针`、宿主单元测试与 JSDOM+真实 Wasm 的一致性测试,说明见其中的 `说明.汉语.md`)。
# 网页应用浏览器适配
`应用。豫` 行[网页应用之约](../../../豫言操作系统接口/网页应用/规范.文言.md)之诸函数:`启动页面应用`。`实现接口。豫` 定公共包之身与版,接口检查器当于构建前核其签。
**宿主原语**:适配惟调 `豫言_浏览器_网页能力`(同步)与 `豫言_浏览器_网页能力异步`(须候者)二原语,操作名为 `应用.启动`(异步,经 `豫言_浏览器_网页能力异步`);败则以(阴,错误文)返,本适配转为豫言事故,不使 JavaScript 之异常越 Wasm 之界。
**宿主之行**:`宿主/浏览器/宿主.mjs` 之 `创建网页能力`。宿主验入口之径(同源、以“/入口.mjs”终、无“..”与查询、片段),以 `import()`(可由 `创建浏览器宿主({导入模块})` 注入)载其模块,调其 `启动豫言浏览器应用()`,候子应用就绪(三十秒为限);同径惟启一次,至多八个;宿主闭则子应用一并闭。
**运行之要**:候事之函数挂豫言之栈,浏览器须支持 JSPI;八新包与网页事件包共一统一事列。
**验收**:一致性验证见 `../网页定时/一致性验证/`(探针应用“前端接口探针”、宿主单元测试与 JSDOM 加真实 Wasm 之一致性测试,说明见其中之 `说明.文言.md`)。