hunter-open-sdk 1.0.4 → 1.0.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.GetAndroidSn = void 0;
7
+ exports.UnregisterAndroidSn = exports.GetAndroidSn = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _usb = require("usb");
@@ -12,6 +12,8 @@ var _utils = require("../utils/utils");
12
12
  var _utils2 = require("../utils/utils.sn");
13
13
  var childProcess = require('child_process');
14
14
  var exec = childProcess.exec;
15
+ var hadRegisterUsb = false; // 是否已经注册过usb事件
16
+ var isPause = false; // 是否暂停获取sn
15
17
 
16
18
  // mac获取sn
17
19
  var getMacSn = /*#__PURE__*/function () {
@@ -30,18 +32,22 @@ var getMacSn = /*#__PURE__*/function () {
30
32
  return customWebUSB.getDevices();
31
33
  case 4:
32
34
  deviceList = _context.sent;
33
- if (attachDeviceId) {
34
- _context.next = 7;
35
+ console.log('deviceList', deviceList);
36
+
37
+ // 如果设备没有attachDeviceId 则直接返回
38
+ if (!(!attachDeviceId || !deviceList.length)) {
39
+ _context.next = 8;
35
40
  break;
36
41
  }
37
42
  return _context.abrupt("return");
38
- case 7:
43
+ case 8:
39
44
  // 删选出当前的设备信息 为获取到serialNumber
40
45
  currentDevice = deviceList.filter(function (item) {
41
46
  return item.device.deviceAddress == attachDeviceId;
42
47
  });
48
+ console.log('currentDevice', currentDevice);
43
49
  if (currentDevice.length) {
44
- _context.next = 11;
50
+ _context.next = 13;
45
51
  break;
46
52
  }
47
53
  callBack({
@@ -50,7 +56,7 @@ var getMacSn = /*#__PURE__*/function () {
50
56
  message: '获取SN失败'
51
57
  });
52
58
  return _context.abrupt("return");
53
- case 11:
59
+ case 13:
54
60
  // 检查设备是否为支持的三星、华为、荣耀手机品牌
55
61
  deviceInfo = currentDevice[0];
56
62
  productName = ((_deviceInfo$productNa = deviceInfo.productName) === null || _deviceInfo$productNa === void 0 ? void 0 : _deviceInfo$productNa.toLowerCase()) || '';
@@ -59,8 +65,9 @@ var getMacSn = /*#__PURE__*/function () {
59
65
  isSupportedBrand = supportedBrands.some(function (brand) {
60
66
  return productName.includes(brand) || manufacturerName.includes(brand);
61
67
  });
68
+ console.log('deviceInfo', deviceInfo, productName, manufacturerName);
62
69
  if (isSupportedBrand) {
63
- _context.next = 19;
70
+ _context.next = 22;
64
71
  break;
65
72
  }
66
73
  callBack({
@@ -69,7 +76,7 @@ var getMacSn = /*#__PURE__*/function () {
69
76
  message: '暂不支持该品牌手机查询SN'
70
77
  });
71
78
  return _context.abrupt("return");
72
- case 19:
79
+ case 22:
73
80
  callBack({
74
81
  code: 0,
75
82
  data: {
@@ -77,7 +84,7 @@ var getMacSn = /*#__PURE__*/function () {
77
84
  },
78
85
  message: '获取SN成功'
79
86
  });
80
- case 20:
87
+ case 23:
81
88
  case "end":
82
89
  return _context.stop();
83
90
  }
@@ -160,34 +167,45 @@ var getWinSn = /*#__PURE__*/function () {
160
167
  * @param {Function} callBack - 回调函数
161
168
  */
162
169
  var GetAndroidSn = exports.GetAndroidSn = function GetAndroidSn(params, callBack) {
163
- console.log('GetAndroidSn params', params);
170
+ if (hadRegisterUsb) {
171
+ isPause = false;
172
+ return;
173
+ }
174
+ hadRegisterUsb = true;
164
175
  _usb.usb.on('attach', /*#__PURE__*/function () {
165
176
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(device) {
166
177
  return _regenerator.default.wrap(function _callee3$(_context3) {
167
178
  while (1) switch (_context3.prev = _context3.next) {
168
179
  case 0:
169
- saasCallBack({
180
+ if (!isPause) {
181
+ _context3.next = 2;
182
+ break;
183
+ }
184
+ return _context3.abrupt("return");
185
+ case 2:
186
+ console.log('attach GetAndroidSn', device);
187
+ callBack({
170
188
  data: {
171
189
  eventName: 'type_usb_android_device_result',
172
190
  eventCode: 0
173
191
  }
174
192
  });
175
193
  if (!(0, _utils.isMac)()) {
176
- _context3.next = 4;
194
+ _context3.next = 7;
177
195
  break;
178
196
  }
179
197
  // mac获取sn
180
198
  getMacSn(device, callBack);
181
199
  return _context3.abrupt("return");
182
- case 4:
200
+ case 7:
183
201
  if (!(0, _utils.isWin)()) {
184
- _context3.next = 7;
202
+ _context3.next = 10;
185
203
  break;
186
204
  }
187
205
  // win获取sn
188
206
  getWinSn(device, callBack);
189
207
  return _context3.abrupt("return");
190
- case 7:
208
+ case 10:
191
209
  case "end":
192
210
  return _context3.stop();
193
211
  }
@@ -197,5 +215,12 @@ var GetAndroidSn = exports.GetAndroidSn = function GetAndroidSn(params, callBack
197
215
  return _ref3.apply(this, arguments);
198
216
  };
199
217
  }());
200
- _usb.usb.on('detach', function () {});
218
+ _usb.usb.on('detach', function () {
219
+ if (isPause) {
220
+ return;
221
+ }
222
+ });
223
+ };
224
+ var UnregisterAndroidSn = exports.UnregisterAndroidSn = function UnregisterAndroidSn() {
225
+ isPause = true;
201
226
  };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.deviceHelper = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var DeviceHelper = /*#__PURE__*/function () {
11
+ function DeviceHelper() {
12
+ (0, _classCallCheck2.default)(this, DeviceHelper);
13
+ this.udidList = [];
14
+ }
15
+ (0, _createClass2.default)(DeviceHelper, [{
16
+ key: "addUdid",
17
+ value: function addUdid(udid) {
18
+ this.udidList.push(udid);
19
+ }
20
+ }, {
21
+ key: "getUdidList",
22
+ value: function getUdidList() {
23
+ return this.udidList;
24
+ }
25
+ }, {
26
+ key: "removeUdid",
27
+ value: function removeUdid(udid) {
28
+ this.udidList = this.udidList.filter(function (item) {
29
+ return item !== udid;
30
+ });
31
+ }
32
+ }, {
33
+ key: "hasUdid",
34
+ value: function hasUdid(udid) {
35
+ return this.udidList.includes(udid);
36
+ }
37
+ }, {
38
+ key: "clearUdidList",
39
+ value: function clearUdidList() {
40
+ this.udidList = [];
41
+ }
42
+ }]);
43
+ return DeviceHelper;
44
+ }();
45
+ var deviceHelper = exports.deviceHelper = new DeviceHelper();
package/lib/index.js CHANGED
@@ -20,5 +20,6 @@ var _default = exports.default = {
20
20
  unregisterEvent: _registerEvent.UnregisterEvent,
21
21
  getGeneralReport: _getGeneralReport.GetGeneralReport,
22
22
  getSaaSReport: _getSaaSReport.GetSaaSReport,
23
- getAndroidSn: _getAndroidSn.GetAndroidSn
23
+ getAndroidSn: _getAndroidSn.GetAndroidSn,
24
+ unregisterAndroidSn: _getAndroidSn.UnregisterAndroidSn
24
25
  };
@@ -10,6 +10,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
10
10
  var _utils = require("../utils/utils");
11
11
  var _winDriver = require("../events/driver/winDriver");
12
12
  var _utils2 = require("../utils/utils.global");
13
+ var _deviceHelper = require("../helper/deviceHelper");
13
14
  var usbmux = require('usbmux');
14
15
  var path = require('path');
15
16
  var request = require("request");
@@ -21,7 +22,6 @@ var saasCallBack;
21
22
 
22
23
  // usb监听
23
24
  var usbListener = null;
24
-
25
25
  /**
26
26
  * 获取资源文件的基础路径
27
27
  */
@@ -55,6 +55,12 @@ var DevicePair = /*#__PURE__*/function () {
55
55
  case 0:
56
56
  udid = _args.length > 0 && _args[0] !== undefined ? _args[0] : '';
57
57
  params = _args.length > 1 ? _args[1] : undefined;
58
+ if (_deviceHelper.deviceHelper.hasUdid(udid)) {
59
+ _context.next = 4;
60
+ break;
61
+ }
62
+ return _context.abrupt("return");
63
+ case 4:
58
64
  // 通过调用read_pair来判断是否已配对【信任】
59
65
  paramsObj = JSON.parse(params); // 合并参数
60
66
  Object.assign(paramsObj, {
@@ -63,13 +69,13 @@ var DevicePair = /*#__PURE__*/function () {
63
69
  });
64
70
  devicePair = (0, _utils2.callHunterInspectionKit)('TheForceKit', JSON.stringify(paramsObj));
65
71
  if (!devicePair) {
66
- _context.next = 15;
72
+ _context.next = 17;
67
73
  break;
68
74
  }
69
75
  pairRes = JSON.parse(devicePair);
70
76
  Code = pairRes.Code, Data = pairRes.Data;
71
77
  if (!(Code == 0 && (Data.imei || Data.serialNumber))) {
72
- _context.next = 12;
78
+ _context.next = 14;
73
79
  break;
74
80
  }
75
81
  saasCallBack({
@@ -79,14 +85,14 @@ var DevicePair = /*#__PURE__*/function () {
79
85
  eventCode: 0
80
86
  }
81
87
  });
82
- _context.next = 15;
88
+ _context.next = 17;
83
89
  break;
84
- case 12:
85
- _context.next = 14;
86
- return (0, _utils.sleep)();
87
90
  case 14:
91
+ _context.next = 16;
92
+ return (0, _utils.sleep)();
93
+ case 16:
88
94
  DevicePair(udid, params);
89
- case 15:
95
+ case 17:
90
96
  case "end":
91
97
  return _context.stop();
92
98
  }
@@ -280,9 +286,10 @@ var RegisterEvent = exports.RegisterEvent = /*#__PURE__*/function () {
280
286
  eventCode: 0
281
287
  }
282
288
  });
289
+ _deviceHelper.deviceHelper.addUdid(udid);
283
290
  // 有驱动,直接运行脚本
284
291
  DevicePair(udid, params);
285
- case 4:
292
+ case 5:
286
293
  case "end":
287
294
  return _context2.stop();
288
295
  }
@@ -300,6 +307,7 @@ var RegisterEvent = exports.RegisterEvent = /*#__PURE__*/function () {
300
307
  eventCode: -1
301
308
  }
302
309
  });
310
+ _deviceHelper.deviceHelper.removeUdid(udid);
303
311
  }).on('error', function (err) {
304
312
  console.log('usb连接错误:', err);
305
313
  Sentry.captureException('usb连接错误:' + JSON.stringify(err));
@@ -318,4 +326,5 @@ var RegisterEvent = exports.RegisterEvent = /*#__PURE__*/function () {
318
326
  }();
319
327
  var UnregisterEvent = exports.UnregisterEvent = function UnregisterEvent() {
320
328
  usbListener && usbListener.destroy();
329
+ _deviceHelper.deviceHelper.clearUdidList();
321
330
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hunter-open-sdk",
3
- "version": "1.0.4",
3
+ "version": "1.0.7-beta.1",
4
4
  "description": "采货侠SaaS版本桌面端sdk",
5
5
  "scripts": {
6
6
  "start": "zz dev",