微信小程序蓝牙连接小票打印机实例代码详解


Posted in Javascript onJune 03, 2019

1.连接蓝牙

(第一次发表博客)

第一步打开蓝牙并搜索附近打印机设备//

startSearch: function() {
var that = this
wx.openBluetoothAdapter({
success: function(res) {
wx.getBluetoothAdapterState({
success: function(res) {
if (res.available) {
if (res.discovering) {
wx.stopBluetoothDevicesDiscovery({
success: function(res) {
console.log(res)
}
})
}
that.checkPemission()
} else {
wx.showModal({
title: '提示',
content: '本机蓝牙不可用',
})
}
},
})
},
fail: function() {
wx.showModal({
title: '提示',
content: '蓝牙初始化失败,请打开蓝牙',
})
}
})
}

2.将搜索到的设备列表绑定点击事件并连接

bindViewTap: function(e) {
var that = this
wx.stopBluetoothDevicesDiscovery({
success: function(res) {
console.log(res)
},
})
that.setData({
serviceId: 0,
writeCharacter: false,
readCharacter: false,
notifyCharacter: false
})
var shebei = e.currentTarget.dataset.title
wx.setStorageSync('shebei', shebei)
wx.showLoading({
title: '正在连接',
})
wx.createBLEConnection({
deviceId: e.currentTarget.dataset.title,
success: function(res) {
console.log(res)
app.BLEInformation.deviceId = e.currentTarget.dataset.title
console.log(e.currentTarget.dataset.title)
that.getSeviceId()
},
fail: function(e) {
wx.showModal({
title: '提示',
content: '连接失败',
})
console.log(e)
wx.hideLoading()
},
complete: function(e) {
console.log(e)
}
})
}

3.连接成功后保存连接状态

getSeviceId: function() {
var that = this
var platform = app.BLEInformation.platform
console.log(app.BLEInformation.deviceId)
wx.getBLEDeviceServices({
deviceId: app.BLEInformation.deviceId,
success: function(res) {
that.setData({
services: res.services
})
that.getCharacteristics()
},
fail: function(e) {
console.log(e)
},
complete: function(e) {
console.log(e)
}
})
}
getCharacteristics: function() {
var that = this
var list = that.data.services
var num = that.data.serviceId
var write = that.data.writeCharacter
var read = that.data.readCharacter
var notify = that.data.notifyCharacter
wx.getBLEDeviceCharacteristics({
deviceId: app.BLEInformation.deviceId,
serviceId: list[num].uuid,
success: function(res) {
console.log(res)
for (var i = 0; i < res.characteristics.length; ++i) {
var properties = res.characteristics[i].properties
var item = res.characteristics[i].uuid
if (!notify) {
if (properties.notify) {
app.BLEInformation.notifyCharaterId = item
app.BLEInformation.notifyServiceId = list[num].uuid
notify = true
}
}
if (!write) {
if (properties.write) {
app.BLEInformation.writeCharaterId = item
app.BLEInformation.writeServiceId = list[num].uuid
write = true
}
}
if (!read) {
if (properties.read) {
app.BLEInformation.readCharaterId = item
app.BLEInformation.readServiceId = list[num].uuid
read = true
}
}
}
if (!write || !notify || !read) {
num++
that.setData({
writeCharacter: write,
readCharacter: read,
notifyCharacter: notify,
serviceId: num
})
if (num == list.length) {
wx.showModal({
title: '提示',
content: '找不到该读写的特征值',
})
} else {
that.getCharacteristics()
}
} else {
that.openControl()
}
},
fail: function(e) {
console.log(e)
},
complete: function(e) {
console.log("write:" + app.BLEInformation.writeCharaterId)
console.log("read:" + app.BLEInformation.readCharaterId)
console.log("notify:" + app.BLEInformation.notifyCharaterId)
}
})
}
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
app.BLEInformation.platform = app.getPlatform()
}

 总结

以上所述是小编给大家介绍的微信小程序蓝牙连接小票打印机实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
用Javascript读取中文COOKIE的解决办法
Feb 15 Javascript
使用Firebug对js进行断点调试的图文方法
Apr 02 Javascript
基于jQuery的获取标签名的代码
Jul 16 Javascript
js判断页面中是否有指定控件的简单实例
Mar 04 Javascript
按下回车键指向下一个位置的一个函数代码
Mar 10 Javascript
javascript 10进制和62进制的相互转换
Jul 31 Javascript
jquery中append()与appendto()用法分析
Nov 14 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
Sep 16 Javascript
微信小程序-消息提示框实例
Nov 24 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
Jul 20 Javascript
react-native滑动吸顶效果的实现过程
Jun 03 #Javascript
vue-cli 3 全局过滤器的实例代码详解
Jun 03 #Javascript
vue2之简易的pc端短信验证码的问题及处理方法
Jun 03 #Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 #Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 #Javascript
Vue基础学习之项目整合及优化
Jun 02 #Javascript
JavaScript判断对象和数组的两种方法
May 31 #Javascript
You might like
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
简单的php文件上传(实例)
2013/10/27 PHP
PHP解析RSS的方法
2015/03/05 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
django form和field具体方法和属性说明
2020/07/09 Python
python从Oracle读取数据生成图表
2020/10/14 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
网络体系结构及协议的定义
2014/03/13 面试题
介绍下Lucene建立索引的过程
2016/03/02 面试题
学期研究性学习个人的自我评价
2014/01/09 职场文书
个性与发展自我评价
2014/02/11 职场文书
绩效考核实施方案
2014/03/18 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
初中学习计划书范文
2014/09/15 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
2014年护士个人工作总结
2014/11/11 职场文书
优秀团员个人总结
2015/02/26 职场文书
2015年手术室工作总结
2015/05/11 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
Vue3.0 手写放大镜效果
2021/07/25 Vue.js
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis