webview是什么意思:移动端内嵌网页容器

webview是什么意思,它是App内部嵌入的网页渲染容器,不用跳转外部浏览器,直接在原生应用界面加载HTML、CSS、JS页面,适合需要快速迭代活动页、帮助中心、资讯页面的开发场景,适用人群为移动端前端、安卓/iOS客户端开发,不适合需要底层硬件高性能图形渲染、离线复杂本地计算的业务,它复用系统自带浏览器内核,无需在App内完整打包浏览器,可降低安装包体积,同时能通过桥接接口完成网页与原生代码的数据互相传递。

webview核心运行原理

webview本身不是独立浏览器,只是剥离地址栏、标签页、书签等交互组件后的渲染内核载体。安卓平台一般基于Chromium内核,iOS平台使用WebKit内核,网页代码交给内核解析渲染后,绘制在App预留的视图区域。原生App提供一套通信通道,网页端JavaScript可以调用原生的拍照、定位、存储能力,原生代码也能接收网页触发的事件,实现混合开发的交互能力。

通信桥是webview混合开发的关键。

webview与原生页面、浏览器的差异

载体渲染内核能力限制包体积影响
webview系统自带内核硬件接口调用需要桥接开发增加较小,无需内置完整浏览器
原生App页面无网页内核,平台原生组件可直接调用全部硬件接口新增功能需要升级App安装包
独立浏览器完整浏览器内核具备完整网页交互控件独立完整安装包

webview的典型业务场景

  • App活动弹窗、营销落地页,上线无需应用商店审核
  • 用户协议、隐私政策、帮助文档,内容随时修改更新
  • 轻量表单、问卷、资讯内容,页面逻辑由前端维护
  • 跨端复用H5项目,一套网页同时适配多平台App内嵌展示

你在开发webview页面时,需要适配不同系统内核版本,旧版本安卓Chromium内核存在部分JSAPI兼容性差异,会出现样式错乱或者接口调用失败。这种情况需要增加降级代码,优先检测内核版本,不直接使用高版本网页API。

webview存在安全相关的边界限制,开启JS注入后,如果网页来源不可信,页面脚本可以尝试调用原生暴露的接口,带来数据泄露的可能性。业务开发时,仅对可信域名开放JS桥接口,拦截非白名单域名执行JavaScript调用原生能力。

webview性能短板集中在复杂动画、大量DOM节点渲染场景。页面滚动、动画流畅度一般弱于原生页面,当页面包含长列表、3D动画、高频实时数据刷新的内容,优先选择原生页面实现。

webview的缓存策略由内核控制,分为内存缓存与磁盘缓存。你可以通过代码设置缓存模式,选择优先读取本地缓存或者每次强制请求服务器资源,帮助控制页面内容是否实时更新。

在微信小程序、各类超级App内打开的H5页面,底层载体同样属于webview,只是宿主App对内核接口做了二次封装,对外暴露专属的JSAPI,调用摄像头、文件上传等功能需要遵循宿主平台的接口规范。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于webview是什么意思的文章欢迎访问:百科