解决uni-app中使用webview键盘弹起遮挡input输入框问题

这个平平无奇的回答,可能是全网最靠谱的解决方案。

这里我用的是vue3 setup .vue文件的方式

html 复制代码
<view>
<web-view :fullscreen="false" :webview-styles="{
       top: statusBarHeight+40,
 height:height,
 progress: {
		color: 'green',
		height:'1px' } }"   :src="url"></web-view>
</view>

解决这个问题的核心就在这个height,你不信把这个height去掉问题就解决了,可是会导致底部被遮挡住的问题。解决办法就是键盘弹起的时候把height改成null,放下的时候恢复。

上魔法

javascript 复制代码
import {
		onLoad,
		onShow,
		onReady,
		onUnload,
		onNavigationBarButtonTap,
	} from "@dcloudio/uni-app";
	const width = ref();
	const height = ref();
	const title = ref("标题");
	const ref_webview = ref();
	const statusBarHeight = ref(40)
	onLoad((options) => {
		url.value = options.url;
		let res = uni.getSystemInfoSync();
		width.value = res.screenWidth;
		statusBarHeight.value = res.statusBarHeight;
		height.value = res.screenHeight - statusBarHeight.value - 40;
		
		 uni.onKeyboardHeightChange(onKeyboardHeightChange);
	});
	onUnload(()=>{
		 uni.offKeyboardHeightChange(onKeyboardHeightChange);
	}) 
	//这里是核心
	function onKeyboardHeightChange(res){
		if(res.height==0){
			let res = uni.getSystemInfoSync();
			height.value = res.screenHeight - statusBarHeight.value - 40;
		}else{
			height.value = null
		}
	}

可以到这里下载体验我的app https://aweb123.com

相关推荐
^Rocky15 小时前
uniapp 实现腾讯云IM群文件上传下载功能
uni-app·腾讯云
moxiaoran575316 小时前
uni-app学习笔记三十四--刷新和回到顶部的实现
笔记·学习·uni-app
y东施效颦17 小时前
uni-app页面发布测试环境出现连接服务器超时,点击屏幕重试解决方案
前端·javascript·vue.js·uni-app·vue
华子w90892585918 小时前
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
spring boot·微信小程序·uni-app
性野喜悲19 小时前
uniapp+<script setup lang=“ts“>解决有数据与暂无数据切换显示,有数据加载时暂无数据闪现(先加载空数据)问题
uni-app
假客套1 天前
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
微信·uni-app·旅游
邹荣乐1 天前
uni-app开发微信小程序的报错[渲染层错误]排查及解决
前端·微信小程序·uni-app
xw51 天前
支付宝小程序外链跳转调试爬坑
uni-app·支付宝
^Rocky1 天前
uniapp 对接腾讯云IM群组成员管理(增删改查)
uni-app·腾讯云
假客套1 天前
2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】
前端·uni-app·旅游