UpdateUtils.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * 热更新相关的工具
  3. */
  4. let UpdateUtils = {
  5. /**
  6. * bytes 转换成 MB
  7. *
  8. * @author libo
  9. * @date 2019-03-19
  10. * @param {number} bytes 字节
  11. * @returns {number} MB
  12. */
  13. bytesToMb (bytes) {
  14. return bytes / 1024 / 1024;
  15. },
  16. /**
  17. * 版本比对函数
  18. *
  19. * @author libo
  20. * @date 2019-03-21
  21. * @param {string} versionA 本地版本号
  22. * @param {string} versionB 远程版本号
  23. * @returns {number} 比对结果, 小于0需要更新
  24. */
  25. compareVersionStr (versionA, versionB) {
  26. G.LogUtils.log('本地版本:' + versionA + ' 远程版本:' + versionB);
  27. let vA = versionA.split('.');
  28. let vB = versionB.split('.');
  29. // 先判断t
  30. let isDebugA = vA[0] == 't' ? true : false;
  31. let isDebugB = vB[0] == 't' ? true : false;
  32. // t不一致就不用更新
  33. if (isDebugA != isDebugB) {
  34. return 0;
  35. }
  36. // 去除t
  37. if (isDebugA) {
  38. vA.shift();
  39. }
  40. if (isDebugB) {
  41. vB.shift();
  42. }
  43. for (let i = 0; i < vA.length; ++i) {
  44. let a = parseInt(vA[i]);
  45. let b = parseInt(vB[i] || 0);
  46. if (a === b) {
  47. continue;
  48. } else {
  49. return a - b;
  50. }
  51. }
  52. if (vB.length > vA.length) {
  53. return -1;
  54. } else {
  55. return 0;
  56. }
  57. }
  58. };
  59. module.exports = UpdateUtils;