diff --git a/miniprogram/pages/wear-check/wear-check.js b/miniprogram/pages/wear-check/wear-check.js index b9f40af..10ad066 100644 --- a/miniprogram/pages/wear-check/wear-check.js +++ b/miniprogram/pages/wear-check/wear-check.js @@ -39,7 +39,7 @@ Page({ self.setData({ checking: true, result: null, error: '' }) if (!ble.isConnected()) { - self.setData({ checking: false, result: 'fail', error: '设备未连接,请返回重新连接' }) + self.setData({ checking: false, result: 'fail', error: '设备未连接,请点击重新连接' }) return } @@ -70,6 +70,8 @@ Page({ onUnload: function () { if (this._onStatus) ble.off('status', this._onStatus) + clearTimeout(this._reconnectTimer) + ble.stopScan() }, onNext: function () { @@ -77,11 +79,33 @@ Page({ }, onRetry: function () { - if (!ble.isConnected()) { - wx.navigateBack() + var self = this + if (self.data.checking) return + if (ble.isConnected()) { + self.checkWearing() return } - this.checkWearing() + self.setData({ checking: true, result: null, error: '', connected: false }) + clearTimeout(self._reconnectTimer) + ble.disconnect() + setTimeout(function () { + ble.startScan({ + onFound: function () {}, + onConnected: function () { + clearTimeout(self._reconnectTimer) + self.setData({ checking: false, connected: true }) + self.checkWearing() + }, + onError: function (err) { + clearTimeout(self._reconnectTimer) + self.setData({ checking: false, result: 'fail', error: err.msg || '连接失败' }) + } + }) + self._reconnectTimer = setTimeout(function () { + ble.stopScan() + self.setData({ checking: false, result: 'fail', error: '搜索超时,请确认设备已开机' }) + }, 15000) + }, 500) }, onMockWearOk: function () {