本文档用于定义小程序中 H5 定制内容的承载方式。目标不是把 H5 做成真正的同页弹窗,而是做成:
web-view 只负责内容区这样既保留了 H5 的定制能力,也能让用户感受更接近“弹窗”或“抽屉”。
当前 H5 内容页已经能打开,但整页全屏切换比较生硬,用户体验不够好。
新的 experience-shell 目标是:
web-view 强绑在一起微信小程序里的 web-view 更适合放在独立页面中承载。
不要尝试把 web-view 直接叠在地图页上方做真弹窗,否则后续很容易遇到:
最终结构应该是:
web-view 内容区也就是:
experience-shell
├─ backdrop
├─ native header
└─ web-view body
第一阶段只支持 3 种:
sheetdialogfullscreensheet适合:
视觉:
dialog适合:
视觉:
fullscreen适合:
H5 内容配置建议支持:
{
"type": "h5",
"url": "https://example.com/content/control-1",
"bridge": "content-v1",
"presentation": "sheet"
}
字段说明:
type
当前支持 native / h5url
H5 页面地址bridge
bridge 版本presentation
展示方式,支持:
sheetdialogfullscreen默认值建议:
sheetdialog原生壳子负责:
原生壳子不负责:
原生必须始终支持:
H5 可以通过 bridge 发:
close然后由原生统一关闭壳子页。
如果出现:
统一回退到:
sheetdialoglite在低端机或 lite 模式下:
experience-webview 升级成 shellsheetcontent-v1dialog小程序里的 H5 不应该直接作为“生硬全页”使用,也不应该强行做成“地图页上的真弹窗”。
最稳的方案是:
独立页面承载,但由原生壳子把它做成 sheet / dialog / fullscreen 三种体验形态。