当前位置: 首页 > 知识库问答 >
问题:

javascript - uniapp中,为什么跳转回tabBar页面就无法接收监听?

施永宁
2023-09-07

onBLECharacteristicValueChange这个监听的文档地址:https://uniapp.dcloud.net.cn/api/system/ble.html#onblecharact...

无论在哪个页面都能收到这个api的监听,唯独跳转回主页tabBar页面监听就没了,所以这个监听本身应该是没问题的?只是不知道返回主页的tabBar页面有什么我不知道的机制导致监听失效,

我把这个监听放在APP.VUE的onLaunch里面,但实际上不管放在哪个页面(除主页外)的效果都和上述一致。

求教大神们是哪里出问题了,用了几个跳转的api都不行↓

this.$u.route({  url: 'pages/index/index',  type: 'tab',})
uni.switchTab({  url: '/pages/index/index'});

小弟在这里先感谢各位大神们,感激不尽,祝大神们发财祝大神们取漂亮老婆

共有2个答案

芮明知
2023-09-07

可以在main.js中调用,使用uni.$emit uni.$on来监听。

/** 监听低功耗蓝牙设备的特征值变化 */uni?.onBLECharacteristicValueChange &&  uni.onBLECharacteristicValueChange((res) => {    const { value: readData, characteristicId, deviceId } = res;    const huxStr = buf2hex(readData);    console.log(`触发的设备id:${characteristicId} ,得到的数据 ${huxStr}`);    uni.$emit("readData", { msg: huxStr, deviceId, bufferArr: readData });  });

在页面中使用

    uni.$on("readData", (data) => {      const { msg, deviceId, bufferArr } = data;      if (deviceId !== props.deviceId) return;      console.log(msg);    });
唐运诚
2023-09-07

APP.VUE的onLaunch是首次打开APP时,初始化完成时触发(全局只触发一次)
tabBar页面可以放在onShow()方法里,每次打开页面都会触发

 类似资料:
  • pages.json 中 pages配置四个页面,其中有三个配置到了tabBar中 删减代码如下: 我现在需要从客户通讯录中通过点击跳转到没有配置在tabBar中的 客户详情页面中,事件代码如下: 结果控制台报错: 我的文件 '/pages/CustomerInfo/index' 是存在的,路径也没有写错,为什么会找不到页面呢?

  • 路径没错啊,就是在static目录下的 图片啊

  • 有多个菜单页面,页面上方都有查询,封装了查询组件,切换页面的时候要重置查询条件-searchObj 我用pinia来存查询条件,searchObj,然后每个页面监听searchObj,条件变化就发起查询 问题是: 当我切换页面的时候把查询条件重置,这时候就会触发当前页面的watch,然后发起查询,就是跳转前就发起了查询 请问怎么解决这种问题,或者怎么这样的布局还有什么其他方法实现

  • 将复制的链接粘贴到地址栏中,搜索后 想要达到跳转到该链接对应的页面,但是现在默认跳转到首页了 重定向已关闭

  • 页面能跳转 但是参数为空 必须使用动态参数才行但是动态参数 传多个参数又很麻烦 有什么好办法吗 把目录改成这样就可以了 有别的方法吗

  • 前端页面渲染前向其他页面跳转,发生无限循环的问题。 代码如上: 问题背景是这样:我自己的一个云服务器网站还没有域名,只实现了前端的ssl认证,但是没有实现后端的ssl认证,导致前端无法向后端发送https请求。于是我目前打算,当用户通过https协议登录前端网站的时候,自动跳转到http协议下的该网站,具体实现的代码如上面所写,但是部署到云服务器并测试的时候发现网页不断弹出alert框,且一直在当