uniapp蓝牙搜索设备并列表展示

1.需求:3.0的桩可以值扫码通过蓝牙名字直接绑定,2.0的桩二维码无蓝牙名称则需通过蓝牙列表来绑定
2.碰到问题
1.0 蓝牙列表需要去重(蓝牙列表通过deviceId去重再放进展示列表)
2.0页面会卡顿(调用my.stopBluetoothDevicesDiscovery() )
3.特别注意点
在这里插入图片描述
4.代码

<template><view style="height:100vh;padding-top: 40rpx;"><view class="titleHead">请选择蓝牙设备绑定</view><view class="table-body" @touchmove="move"><view class="table-item" v-for="(item,index) in bluetoothList" :key="index" @click="selectBluetooth(item)">{{item.name}}</view></view><view class="bottom-title"><view>设备名称规则:ZDBT+桩编码后9</view><view>:ZDBT000000V01</view></view></view>
</template><script>export default {onShow() {this.initBluetooth()},onLoad() {},onUnload() {my.offBluetoothDeviceFound();my.closeBluetoothAdapter({success: function(res) {console.log(res);},fail: function(err) {console.log(err);}});},onHide() {my.offBluetoothDeviceFound();my.closeBluetoothAdapter({success: function(res) {console.log(res);},fail: function(err) {console.log(err);}});},onPullDownRefresh() {uni.showToast({title: '正在刷新...'})this.connectBluetooth()},components: {// timePicker},data() {return {tipShow: false,show: false,msg: '',pendingShow: false,successShow: false,timer: null,count: 3,bluetoothList: [],idList:[],//存放设备deviceId数组 去重}},methods: {goService() {this.tipShow = true;},// clickFla(){// 	my.stopPullDownRefresh()// 	my.offBluetoothDeviceFound();// },move() {my.stopPullDownRefresh()my.offBluetoothDeviceFound();my.stopBluetoothDevicesDiscovery();},/*选中蓝牙*/selectBluetooth(item) {my.stopPullDownRefresh()my.offBluetoothDeviceFound();my.stopBluetoothDevicesDiscovery({success: (res) => {my.closeBluetoothAdapter();uni.reLaunch({url: '/pages/bluetoothList/index?name=' + item.name})},fail: (error) => {console.log(error);},});},/*蓝牙初始化*/initBluetooth() {console.log('蓝牙初始化')let that = this;my.openBluetoothAdapter({success: res => {console.log('蓝牙初始化')console.log(res)console.log('蓝牙初始化')if (!res.isSupportBLE) {uni.showToast({title: '抱歉,您的手机蓝牙暂不可用'})return;}that.connectBluetooth()},fail: error => {uni.showToast({title: JSON.stringify(error.errorMessage)})},});},/*搜索连接蓝牙*/connectBluetooth() {console.log('开始搜索蓝牙')let that = this;let list = []//启用下拉刷新my.startPullDownRefresh({success: function(res) {console.log(res);},fail: function(err) {console.log(err);}});my.startBluetoothDevicesDiscovery({success() {my.onBluetoothDeviceFound(res => {var deviceArray = res.devices;for (let item of deviceArray) {if (item.name != undefined && item.name != null) {if (that.idList.indexOf(item['deviceId']) == -1) {//数组去重that.idList.push(item['deviceId'])that.bluetoothList.push(item)}}}//10秒后停止搜索释放系统资源let timer = setTimeout(() => {my.stopBluetoothDevicesDiscovery()my.stopPullDownRefresh()clearTimeout(timer)}, 10000);})}})}},}
</script><style lang="scss" scoped>.titleHead {width: 100%;height: 66rpx;font-size: 48rpx;font-family: PingFangSC-Semibold, PingFang SC;font-weight: 600;color: #2D3748;line-height: 66rpx;margin: 0 50rpx 0 50rpx;}.table-body {display: flex;flex-direction: column;align-items: center;margin-top: 30rpx;height: calc(100vh - 350rpx);overflow: scroll;.table-item {width: 650rpx;height: 90rpx;line-height: 90rpx;background: #FFFFFF;box-shadow: 0rpx 0rpx 30rpx 14rpx rgba(236, 235, 236, 0.25);border-radius: 45rpx;padding-left: 50rpx;margin-bottom: 20rpx;}.table-active {width: 650rpx;height: 90rpx;background: #1677FF;color: #FFFFFF;box-shadow: 0rpx 0rpx 30rpx 14rpx rgba(236, 235, 236, 0.25);border-radius: 45rpx;padding-left: 50rpx;margin-bottom: 20rpx;}}.bottom-title {position: fixed;bottom: 100rpx;left: 50%;transform: translateX(-50%);font-size: 24rpx;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #1677FF;line-height: 34rpx;>view {text-align: center;}}
</style>

5.效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/175594.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时间序列预测实战(十六)PyTorch实现GRU-FCN模型长期预测并可视化结果

往期回顾&#xff1a;时间序列预测专栏——包含上百种时间序列模型带你从入门到精通时间序列预测 一、本文介绍 本文讲解的实战内容是GRU-FCN(门控循环单元-全卷积网络)&#xff0c;这是一种结合了GRU&#xff08;用于处理时间序列数据&#xff09;和FCN&#xff08;全卷积网络…

Elasticsearch:ES|QL 动手实践

在我之前的文章 “Elasticsearch&#xff1a;ES|QL 查询语言简介”&#xff0c;我对 Elasticsearch 的最新查询语言 ES|QL 做了一个简单的介绍。在今天的文章中&#xff0c;我们详细来使用一些例子来展示 ES|QL 强大的搜索与分析功能。 安装 如果你还没有安装好自己的 Elastic…

Facebook账号运营技巧

Facebook作为全球知名的社交媒体平台之一&#xff0c;坐拥着庞大的用户群体&#xff0c;吸引大量的跨境电商加入&#xff0c;那么肯定就会有少部分的卖家对于Facebook账号运营不是很了解&#xff0c;下面小编将讲一下Facebook账号运营的一些小技巧。 1、明确目标受众 首先需要明…

【Python】一文带你掌握数据容器之集合,字典

目录&#xff1a; 一、集合 思考&#xff1a;我们目前接触到了列表、元组、字符串三个数据容器了。基本满足大多数的使用场景为何又需要学习新的集合类型呢? 通过特性来分析: &#xff08;1&#xff09;列表可修改、支持重复元素且有序 &#xff08;2&#xff09;元组、字符…

0基础学习VR全景平台篇第121篇:认识视频剪辑软件Premiere

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 大家好&#xff0c;这节课是带领大家认识认识我们的剪辑软件Premiere&#xff0c;一般简称是PR。 &#xff08;PR界面&#xff09; 我们首先打开PR&#xff0c;第一步就是要创建…

Centos7下mbr主引导记录演示

linux mbr主引导记录演示 dd if/dev/sda ofmbr.bin bs446 count1 dd if/dev/sda ofmbr.bin bs446 count1hexdump -C mbr.bin[rootlocalhost ~]# cd /boot/grub2 [rootlocalhost grub2]# ls [rootlocalhost grub2]# grub2-editenv list #默认引导内核查看 [rootlocalhost g…

Activiti工作流学习笔记(四)——工作流引擎中责任链模式的建立与应用原理

原创/朱季谦 本文需要一定责任链模式的基础与Activiti工作流知识&#xff0c;主要分成三部分讲解&#xff1a; 一、简单理解责任链模式概念二、Activiti工作流里责任链模式的建立三、Activiti工作流里责任链模式的应用 一、简单理解责任链模式概念 网上关于责任链模式的介绍…

esp32cam串口问题

选择的串口 Failed to execute script esptool不存在或开发板没有连接 设置串口参数时出错&#xff1a;9,600 N 8 1注意到他说的串口设置错误,但是在设置里不能设置串口参数 所以说是串口打印的问题 把他换成esp32用的115200就行

linux DMA设备驱动详解

一&#xff0c;DMA相关定义&#xff08;fpga、wait_queue 、device、interrupt、 dma_request_channel 函数、dma_start_transfer函数、poll、read&#xff0c;platform总线&#xff09; DMA (直接内存读写)是Direct Memory Access的缩写&#xff0c;也就是内存到内存&#xf…

2023-11-14 LeetCode每日一题(阈值距离内邻居最少的城市)

2023-11-14每日一题 一、题目编号 1334. 阈值距离内邻居最少的城市二、题目链接 点击跳转到题目位置 三、题目描述 有 n 个城市&#xff0c;按从 0 到 n-1 编号。给你一个边数组 edges&#xff0c;其中 edges[i] [fromi, toi, weighti] 代表 fromi 和 toi 两个城市之间的…

2023年亚太杯数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 赛题思路算法介绍FP树表示法构建FP树实现代码 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模式树算法&#…

分库分表之后,主键ID如何处理?

前言 当关系型数据库数据量过大时&#xff0c;通常会采用分库分表降低数据库查表压力。分库分表有多种&#xff0c;有分一个库多张分表额&#xff0c;有分多个库多张表的。一般分库分表使用ShardingSphere分表&#xff0c;建分片键等。但是分库分表之后&#xff0c;主键ID如何处…