var ble = require('../../services/ble') var app = getApp() Page({ data: { deviceId: '', bindToken: '', state: 'scanning', error: '' }, onLoad: function (options) { this.setData({ deviceId: options.device_id || '', bindToken: options.bind_token || '' }) this.startBleConnect() }, startBleConnect: function () { var self = this self.setData({ state: 'scanning', error: '' }) ble.startScan({ onFound: function (device) { self.setData({ state: 'connecting' }) }, onConnected: function (device) { self.setData({ state: 'binding' }) self.doBind() }, onError: function (err) { self.setData({ state: 'error', error: err.msg || '连接失败' }) } }) }, doBind: function () { var self = this var userId = app.globalData.userId || '' ble.on('bind_result', function (result) { if (result.success) { self.setData({ state: 'done' }) wx.redirectTo({ url: '/pages/bind-success/bind-success?device_id=' + self.data.deviceId }) } else { self.setData({ state: 'error', error: '设备绑定失败' }) } }) ble.bindDevice(userId, self.data.bindToken).catch(function (err) { self.setData({ state: 'error', error: err.error_msg || '绑定命令失败' }) }) }, onRetry: function () { ble.disconnect() this.startBleConnect() } })