uni-app onNavigationBarSearchInputClicked在电脑和微信端无反应

uni-app onNavigationBarSearchInputClicked在电脑和微信端无反应

8 回复

HBuilderX 4.13.2024042321-alpha 已修复。

更多关于uni-app onNavigationBarSearchInputClicked在电脑和微信端无反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html


问题已确认,原因是浏览器设置 disabled 的 input 元素不支持点击事件,未来版本将会修复这个问题,暂时性解决方案:设置以下全局css样式,可在 App.vue 的 style 里设置
.uni-input-input:disabled {
pointer-events: none;
}

谢谢,为什么还是有部分浏览器还是不兼容

回复 1***@qq.com: 加上这个还是有浏览器不兼容吗

回复 1***@qq.com:什么浏览器不兼容

感谢反馈,我已复现该问题,我排查一下原因,已加分

谷歌浏览器不支持。

uni-app 中,onNavigationBarSearchInputClicked 是一个用于监听导航栏搜索框点击事件的生命周期钩子函数。然而,你提到在电脑和微信端无反应,这可能是由于以下原因导致的:

1. 平台兼容性问题

onNavigationBarSearchInputClicked 主要用于处理导航栏搜索框的点击事件,但这在某些平台(如 H5 或微信小程序)可能不被完全支持或行为不一致。

  • H5 端:H5 端的导航栏是模拟的,可能不支持某些原生导航栏的事件。
  • 微信小程序:微信小程序的导航栏是原生组件,onNavigationBarSearchInputClicked 可能不会触发,或者需要特定的配置。

2. 事件未正确绑定

确保你在 pages.json 或页面配置中正确设置了导航栏搜索框,并且事件处理函数已正确绑定。

例如,在 pages.json 中配置导航栏搜索框:

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页",
        "navigationBarSearchInput": {
          "placeholder": "搜索",
          "onSearchInputClicked": "onNavigationBarSearchInputClicked"
        }
      }
    }
  ]
}

在页面中定义事件处理函数:

export default {
  methods: {
    onNavigationBarSearchInputClicked() {
      console.log('搜索框被点击');
    }
  }
}

3. 平台差异处理

由于不同平台的行为可能不同,建议在处理事件时进行平台判断,并针对不同平台采取不同的处理方式。

例如:

export default {
  methods: {
    onNavigationBarSearchInputClicked() {
      // 判断平台
      if (uni.getSystemInfoSync().platform === 'h5') {
        console.log('H5 平台的处理逻辑');
      } else if (uni.getSystemInfoSync().platform === 'mp-weixin') {
        console.log('微信小程序平台的处理逻辑');
      } else {
        console.log('其他平台的处理逻辑');
      }
    }
  }
}
回到顶部