Utils.dart 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import 'package:flutter/material.dart';
  2. import '../widget/Dialog.dart';
  3. import 'dart:io';
  4. import 'package:url_launcher/url_launcher.dart';
  5. import 'package:package_info/package_info.dart';
  6. import '../net/HttpManager.dart';
  7. import '../net/Result.dart';
  8. bool checkPhone(phone) {
  9. bool result = false;
  10. RegExp exp = RegExp(r'^1[3-9]\d{9}$');
  11. if (exp.hasMatch(phone)) {
  12. result = true;
  13. }
  14. return result;
  15. }
  16. int CompareVersion(String l, String r) {
  17. l = l.trim();
  18. r = r.trim();
  19. if (l == r) {
  20. return 0;
  21. }
  22. var lVers = l.split('.');
  23. var rVers = r.split('.');
  24. var length = lVers.length < rVers.length ? lVers.length : rVers.length;
  25. for (int i = 0; i < length; i++) {
  26. if (lVers[i] == rVers[i]) {
  27. continue;
  28. }
  29. return int.parse(lVers[i]).compareTo(int.parse(rVers[i]));
  30. }
  31. var temp = lVers.length < rVers.length ? rVers : lVers;
  32. for (int i = length; i < temp.length; i++) {
  33. if (int.parse(temp[i]) != 0) {
  34. return lVers.length < rVers.length ? -1 : 1;
  35. }
  36. }
  37. return 0;
  38. }
  39. Future<void> getVersion(BuildContext context) async {
  40. print('检查更新');
  41. PackageInfo packageInfo = await PackageInfo.fromPlatform();
  42. String version = packageInfo.version;
  43. Result versionres = await HttpManager.get('appVersion/getAppVersion?id=1');
  44. if (versionres.success&&versionres.data!=null) {
  45. if ((CompareVersion(version, versionres.data['androidVersion']) < 0 && Platform.isAndroid) ||
  46. (CompareVersion(version, versionres.data['iosVersion']) < 0 && Platform.isIOS)) {
  47. MyDialog.showDialog(context, '检测到新版本,是否立即更新?', isCancel: true, onsubmit: () async {
  48. String url = HttpManager.baseUrl + 'phone/#/downLoad';
  49. if (await canLaunch(url)) {
  50. await launch(url);
  51. } else {
  52. throw 'Could not launch $url';
  53. }
  54. });
  55. }
  56. }
  57. }