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


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 相关文章推荐
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
JS实现上传图片实时预览功能
May 22 Javascript
js实现加载页面就自动触发超链接的示例
Aug 31 Javascript
Vue父子模版传值及组件传值的三种方法
Nov 27 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
May 02 Javascript
vue倒计时刷新页面不会从头开始的解决方法
Mar 03 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
Oct 29 Javascript
uni-app 自定义底部导航栏的实现
Dec 11 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使用APC实现实时上传进度条功能
2015/10/26 PHP
Symfony控制层深入详解
2016/03/17 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
python tornado微信开发入门代码
2018/08/24 Python
Django如何实现上传图片功能
2019/08/16 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python偏函数实现原理及应用
2020/11/20 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
动态密码技术
2012/10/18 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
诉讼代理人授权委托书
2014/04/08 职场文书
条幅标语大全
2014/06/20 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL