<webview> XElement
用于在 Lynx 中嵌入网页,提供灵活的方式集成现有 Web 资源并加速开发。
<webview>在元素侧作为视口,必须有确定的宽度。<webview>在元素侧作为视口,必须有确定的高度。- Web 资源渲染完成后,可使用
document.getElementById获取自身高度,通过 message 通知<webview>修改高度。 - 除非设置了
<x-webview native-interaction-enabled={false} />,否则<webview>的交互事件无法穿透到其他元素。 <webview>不能与其他可滚动元素嵌套使用,如有需要请使用<scroll-view>进行包裹。- 若需拦截点击事件,需手动添加
<x-webview catchtap={() => {}} />。
使用指南
加载 Web 内容
加载 HTML 字符串
属性
bounces
iOS
启用弹性效果
cookies
Clay
Lynx 3.5
预设 cookies
enable-debug
Android
iOS
Clay
Harmony
启用 WebView 调试,可在 Chrome DevTools 中进行调试
html
Android
iOS
Harmony
3.6
表示要加载的 HTML 内容的字符串。当 html 变化时会自动触发内容刷新。优先级低于 src。
initjs
Clay
Lynx 3.5
在文档就绪时执行的 JavaScript
params
Android
iOS
外部 webview 实现的参数
scroll-bar-enable
iOS
启用滚动条
src
Android
iOS
Clay
Harmony
表示远程服务器上资源位置的字符串。当 src 变化时会自动触发内容刷新。
use-osr
Clay
Lynx 3.5
是否启用离屏渲染模式
webview-type
Android
iOS
Harmony
指定 webview 的类型,可以是通过 LynxService 注入的 webview 实现
事件
前端可以绑定对应的事件回调来监听元素的运行时行为,如下所示。
binderror
Android
iOS
Clay
Harmony
加载错误事件
bindload
Android
iOS
Clay
Harmony
加载成功事件
bindlocationchange
Clay
Lynx 3.5
页面地址变化事件
bindmessage
Android
iOS
Clay
Harmony
来自 JavaScript 的消息事件
bindopenwindow
Clay
Lynx 3.5
打开新窗口事件
方法
前端可以通过 SelectorQuery API 调用组件方法。
cookies.flushStore
Clay
Lynx 3.5
将所有未写入的 cookies 数据刷新到磁盘
cookies.get
Clay
Lynx 3.5
从 webview 获取 cookies
cookies.remove
Clay
Lynx 3.5
删除匹配 url 和 name 的 cookies
cookies.set
Clay
Lynx 3.5
为 webview 设置 cookie
eval
Android
iOS
Clay
Harmony
调用 JavaScript 函数
reload
Android
iOS
Clay
Harmony
重新加载 webview
兼容性
LCD tables only load in the browser

