当前位置:首页 > 开发笔记 > 正文内容

uniapp开发抖音小程序监听键盘弹起keyboardheightchange,并获取键盘高度

jiaweisi1周前 (10-27)开发笔记32

今天用 Uniapp 开发抖音小程序,有个核心需求:点击输入框时,键盘弹起后能自动 “顶起” 输入框,避免输入框被键盘遮挡。这就需要实时监听到键盘高度,再把高度设给输入框的样式 —— 说起来简单,实操时却踩了不少坑。

一开始想当然用了 Uniapp 的onKeyBoardHeightChange API,结果在抖音端根本没反应。查了下才知道,抖音小程序压根不支持这个接口,白忙活一场。

接着问 AI,得到的答案翻来覆去还是叫我用onKeyBoardHeightChange,看来它也没吃透抖音的特性。没办法,只能自己啃抖音小程序文档,还真发现 input 组件有个bindkeyboardheightchange事件,专门用来监听键盘高度变化 —— 本以为找到救星,结果直接用上去,事件死活不触发,又卡壳了。

那阵子真有点想放弃,去 GitHub 和 Uniapp 插件市场翻了个遍,也没找到能直接获取抖音键盘高度的第三方库。

最后抱着死马当活马医的心态,试了试在绑定bindkeyboardheightchange时,配合this.$nextTick延迟初始化 —— 没想到,成了!

关键代码(template 部分,重点看keyboardheightchange的绑定):

<!-- 核心是通过keyboardheightchange监听,配合nextTick确保事件能触发 -->
<input 
  v-model="inputVal"
  @keyboardheightchange="handleKeyboardHeightChange"
  placeholder="请输入内容"
/>

折腾了一圈才发现,抖音小程序的事件触发时机比较特殊,有时候确实需要用nextTick等 DOM 更新完再绑定,才能稳稳监听到键盘高度。总算解决了,记录一下免得下次再踩坑。

handleKeyboardChange(e) {
    this.$nextTick(() => {
	    // console.log("弹起了!", e); 
		this.changeKeyBordHeight(e.detail.height) //键盘的高度就是e.detail.height,这里进行设置输入框的高度,函数自己实现即可
	})
}


相关文章

抖音小程序提示编译错误 主包不能直接引用分包文件,请配置占位组件

抖音小程序提示编译错误 主包不能直接引用分包文件,请配置占位组件

uni-app项目编译成抖音小程序提示:抖音小程序提示编译错误 主包不能直接引用分包文件,请配置占位组件 minePages/m00bcdc0c.jsonat tuniao-ui/components/tn-waterfall/tn-waterfall.json解决办法:在 manifest.json -> mp-toutiao 添加属性 "scopedSlotsCompiler": "augmented""mp-toutiao": {     "scopedSlotsCompiler": "augmented"   }...

VS2022 编译的程序依赖的 VC 运行库 DLL 怎么手动提取随程序打包这样让没有安装的电脑也能运行?

VS2022 编译的程序依赖的 VC 运行库 DLL 怎么手动提取随程序打包这样让没有安装的电脑也能运行?

VS2022 编译的程序依赖的 VC 运行库 DLL 怎么手动提取随程序打包这样让没有安装的电脑也能运行?在 VS2022 中手动提取并打包程序依赖的 VC 运行库 DLL,让未安装 vc_redist.x64.exe 的电脑也能运行程序,可按以下 4 个步骤 操作,每一步都有明确的操作指引:步骤 1:确定程序依赖的 VC 运行库 DLL(关键!避免盲目复制)首先需要明确你的程序具体依赖哪些 VC 运行库 DLL(不同程序依赖可能不同,比如是否包含 VCRUNTIME140_1.dll 等)。推荐用 VS 自带的 dumpbin 工具 精准查询:操作步骤:1、打开 VS2022 开发人员命令提示符:按下 Win + S,搜索 “Developer Command Prompt for VS 2022”,右键 “以管理员身份运行”(确保权限足够)。2、定位到你的程序 .exe 所在目录:用 cd 命令切换路径,例如:cd C:\你的程序输出目录\Release  # 假设程序在 Release 文件夹下3、执行命令查看依赖的 D...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。