当前位置: 首页 > news >正文

uniapp使用webview内嵌H5的注意事项

一、描述

uniapp项目中构建app,需要内嵌H5页面,在使用webview时,遇到了以下几个问题:

  1. 内嵌H5,默认全屏显示;
  2. 内嵌页面遮挡住了app的自定义tabbar组件;
  3. 样式修改无效;

二、解决方案:

webview-style设置的样式,针对app生效,style的定义方式兼容web;

<view class="page"><web-view :src="url" class="webview" allow :fullscreen="false" :webview-styles="style" :frameBorder="0" style="width: 100%; height: calc(100% - 10px)"></web-view>
</view>
const style = reactive({width: '100%',height: '100%',bottom: '56px'
});
uni.getSystemInfo({success: (res) => {console.log(res);style.height = res.screenHeight - res.statusBarHeight - res.safeAreaInsets?.bottom - 100 + 'px';style.bottom = res.safeAreaInsets?.bottom + 56 + 'px';}
});

三、经验&结论

关于webview的使用,除了了解相关属性,其中webview-style才对app生效,值得关注。

web-view | uni-app官网

web-view 是一个 web 浏览器组件,可以用来承载网页的容器,会自动铺满整个页面(nvue 使用需要手动指定宽高)。

各小程序平台,web-view 加载的 url 需要在后台配置域名白名单,包括内部再次 iframe 内嵌的其他 url 。

属性说明

属性名类型说明平台差异说明
srcStringwebview 指向网页的链接
allowString用于为 iframe 指定其特征策略H5
sandboxString该属性对呈现在 iframe 框架中的内容启用一些额外的限制条件。H5
fullscreenBoolean是否铺满整个页面,默认值:trueH5 (HBuilder X 3.5.4+)
webview-stylesObjectwebview 的样式App-vue
update-titleBoolean是否自动更新当前页面标题。默认值:trueApp-vue (HBuilder X 3.3.8+)
@messageEventHandler网页向应用 postMessage 时,会在特定时机(后退、组件销毁、分享)触发并收到消息。H5 暂不支持(可以直接使用 window.postMessage)
@onPostMessageEventHandler网页向应用实时 postMessageApp-nvue
@loadEventHandler网页加载成功时候触发此事件。微信小程序、支付宝小程序、抖音小程序、QQ小程序
@errorEventHandler网页加载失败的时候触发此事件。微信小程序、支付宝小程序、抖音小程序、QQ小程序

注意

  • update-title 仅支持 App-vue 。小程序 恒为 trueH5、nvue 恒为 false

src

来源AppH5微信小程序支付宝小程序百度小程序抖音小程序、飞书小程序QQ小程序快应用360小程序快手小程序京东小程序
网络
本地xxxxxxxxx

webview-styles

属性类型说明
progressObject/Boolean进度条样式。仅加载网络 HTML 时生效,设置为 false 时禁用进度条。
widthStringweb-view 组件的宽度。
heightStringweb-view 组件的高度。

http://www.lryc.cn/news/369255.html

相关文章:

  • 现代 C++的高效并发编程模式
  • 汇编语言作业(五)
  • 收音机的原理笔记
  • 排序算法案例
  • 时间序列评价指标
  • Docker:安装 Orion-Visor 服务器运维的技术指南
  • HarmonyOS Next 系列之底部标签栏TabBar实现(三)
  • mac怎么录制屏幕?这2个方法你值得拥有
  • 爱德华三坐标软件ACdmis.AC-dmis密码注册机
  • 计算机网络 期末复习(谢希仁版本)第3章
  • 代码随想录——数组
  • 计算机网络7——网络安全4 防火墙和入侵检测
  • html+CSS+js部分基础运用20
  • ISO 19115-2:2019 附录C XML 模式实现
  • DevOps的原理及应用详解(一)
  • 【冲刺秋招,许愿offer】第 三 天(水一天)
  • 使用 C# 学习面向对象编程:第 6 部分
  • 分布式训练基础入门
  • AWS S3存储桶中如何下载文件
  • 「网络原理」三次握手四次挥手
  • 第二十四章 SOAP 错误处理 - 发生故障时添加 WS-Addressing 标头元素
  • CSS真题合集(一)
  • Golang | Leetcode Golang题解之第144题二叉树的前序遍历
  • 离奇问题:java通过poi读取excel单元格的小数时会出错
  • 前端框架是什么
  • Feign的动态代理如何配置
  • ReactRouter——路由配置、路由跳转、带参跳转、新route配置项
  • 异步处理耗时逻辑
  • Switch 之 配置SNMP
  • 微软如何打造数字零售力航母系列科普13 - Prime Focus Technologies在NAB 2024上推出CLEAR®对话人工智能联合试点