Home  >  Article  >  Web Front-end  >  How to prevent the keyboard from disappearing when clicking a button in uniapp

How to prevent the keyboard from disappearing when clicking a button in uniapp

PHPz
PHPzOriginal
2023-04-23 10:06:461168browse

With the vigorous development of the mobile Internet, more and more companies and developers are beginning to focus on developing mobile-based applications. As a new multi-terminal development framework, UniApp has become the choice of more and more developers. During the UniApp development process, we often encounter the need to click a button to make the keyboard disappear. This article will introduce how to prevent the keyboard from disappearing when clicking a button in UniApp to help developers better develop mobile applications.

1. Requirements Analysis

During the use of mobile applications, users often need to click on other areas of the page to make the keyboard disappear when the keyboard pops up to facilitate other operations. But in some cases, such as search or form input, clicking the button should not make the keyboard disappear to facilitate the user to continue input operations. Therefore, our requirement is to achieve the effect of not letting the keyboard disappear when the mouse clicks the button through programming control based on the actual situation.

2. Implementation Ideas

In the development of UniApp, we can control the interaction between the page and the keyboard by binding button click events and executing JavaScript code. The specific implementation ideas are as follows:

1. Bind the button click event so that we can capture the button click signal.

2. In the JavaScript code that handles the click event, obtain the status of the current page and determine whether the keyboard needs to disappear.

3. If the current page needs to make the keyboard disappear, trigger the event to make the keyboard disappear.

4. If the current page does not require the keyboard to disappear, do nothing and allow the user to continue input operations.

3. Code Implementation

Before implementation, it is necessary to determine whether the keyboard has popped up on the page. If the keyboard doesn't pop up, clicking the button has no effect. If the keyboard has popped up, determine whether the current button needs to make the keyboard disappear. If necessary, call uni.hideKeyboard() to make the keyboard disappear. If not required, do nothing.

The following is an example of code implementation:

<template>
  <view>
    <input type="text" @focus="focusInput" placeholder="请输入内容"/>
    <button @tap="buttonTap">点击我</button>
  </view>
</template>

<script>
  export default {
    methods: {
      buttonTap() {
        // 判断键盘是否已弹出
        uni.getSystemInfo({
          success: res => {
            const { platform } = res
            if (platform === 'ios') {
              const query = uni.createSelectorQuery()
              query.select('#input').boundingClientRect()
              query.selectViewport().scrollOffset()
              query.exec(function (res) {
                const height = window.innerHeight - res[0].bottom
                if (height > 0) {
                  // 键盘未弹出
                  return
                } else {
                  // 键盘已弹出
                  uni.hideKeyboard()
                }
              })
            } else {
              const query = uni.createSelectorQuery()
              query.select('#input').boundingClientRect()
              query.selectViewport().scrollOffset()
              query.exec(function (res) {
                const height = res[0].height - (window.innerHeight - res[0].bottom)
                if (height > 0) {
                  // 键盘未弹出
                  return
                } else {
                  // 键盘已弹出
                  uni.hideKeyboard()
                }
              })
            }
          }
        })
      }
    }
  }
</script>

In the above code, we first determine whether the keyboard has popped up and obtain the height of the current page. Then determine whether the current page needs to make the keyboard disappear based on the height. Finally, make the keyboard disappear by calling uni.hideKeyboard(). In this way, you can always ensure that the keyboard will not disappear when you click the button.

4. Summary

This article introduces how to prevent the keyboard from disappearing when clicking a button in UniApp. The specific idea is to bind the button click event and implement it through programming control according to the actual situation. The code implementation is simple and clear. If you want to develop a mobile application in UniApp and need to implement this feature, you can use this method as a reference.

The above is the detailed content of How to prevent the keyboard from disappearing when clicking a button in uniapp. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn