Webview 嵌入
Webview 用沙箱 iframe 嵌入 HTTPS 页面。
属性
默认
Allow:
Sandbox 只接受安全白名单;allow-same-origin、allow-top-navigation、allow-popups-to-escape-sandbox 永远不开放。示例:
链接行为
跨域 iframe 的点击无法被父页面拦截,所以没有“链接在浏览器打开”的 iframe 参数:target="_self":在 iframe 内跳转。target="_blank":受Sandbox的Popups控制;移除Popups后不会打开弹窗。- 需要“外部链接一律用系统浏览器打开”时,应使用后端代理重写页面,或改用原生 Webview 的 navigation hook;iframe 本身无法安全实现。
安全边界
Src必须是 HTTPS,且域名必须在编辑器中确认。- iframe 固定使用
sandbox="allow-scripts allow-forms allow-popups allow-downloads",不包含allow-same-origin,不能访问启动器页面;弹出窗口也不会逃逸沙箱。 - 不能嵌入
file:、data:或本地路径。 - 目标站点可能通过
X-Frame-Options/ CSP 禁止嵌入;这种情况下请使用OpenUrl在外部浏览器打开。 - 动态
Src的域名仍需在组件hosts中确认,否则不会渲染。
布局
Webview 是固定高度块级元素。外层 Container 负责裁剪或滚动;不要依赖 iframe 自己改变组件高度。