web-view默认是占全屏,需求想要在头部添加一个返回导航。实现如下:
界面如下:
- <view class="myCardNav">
-
- <uni-nav-bar height="125rpx" border="false" left-icon="left" leftWidth="130rpx" statusBar fixed rightWidth="130rpx"
- @clickLeft="onLeftBack">
- <block slot="default">
- <view class="title">服务协议view>
- block>
- uni-nav-bar>
- view>
-
- <web-view style="margin-top: 125rpx; background-color: #fff" :webview-styles="webviewStyles"
- :src="urlType">web-view>
添加data:
- urlType: null,
- webviewStyles: {
- progress: {
- color: "#FF3333"
- }
- },
核心处理:
- onLoad(options) {
-
- // #ifdef APP-PLUS
- let height = 0; //定义动态的高度变量
- let statusbar = 0; // 动态状态栏高度
- uni.getSystemInfo({
- // 获取当前设备的具体信息
- success: sysinfo => {
- statusbar = sysinfo.statusBarHeight;
- height = sysinfo.windowHeight;
- }
- });
- let currentWebview = this.$scope.$getAppWebview(); //获取当前web-view
- setTimeout(function () {
- var wv = currentWebview.children()[0];
- wv.setStyle({
- //设置web-view距离顶部的距离以及自己的高度,单位为px
- top: statusbar + uni.upx2px(125), //此处是距离顶部的高度,应该是你页面的头部
- height: height - statusbar - uni.upx2px(125), //webview的高度
- scalable: false, //webview的页面是否可以缩放,双指放大缩小,
- });
- }, 200); //如页面初始化调用需要写延迟
- // #endif
- },
如此,便可以实现APP端web-view高度设置;