quick_login_helper.dart 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import 'dart:convert';
  2. import 'dart:io';
  3. import 'package:flutter/services.dart';
  4. import 'package:location/data/consts/build_config.dart';
  5. import 'package:location/data/consts/web_url.dart';
  6. import 'package:location/resource/assets.gen.dart';
  7. import 'package:location/utils/atmob_log.dart';
  8. import 'package:quickpass_yidun_flutter/quickpass_flutter_plugin.dart';
  9. class QuickLoginHelper {
  10. QuickLoginHelper._();
  11. static final String tag = 'QuickLoginHelper';
  12. static final String _businessId = BuildConfig.quickLoginBusinessId;
  13. static final String userAgreement = WebUrl.userAgreement;
  14. static final String privacyPolicy = WebUrl.privacyPolicy;
  15. static final QuickpassFlutterPlugin quickLoginPlugin =
  16. QuickpassFlutterPlugin();
  17. static Future<void> init() {
  18. return quickLoginPlugin.init(_businessId).then((map) {
  19. bool result = map?['success'];
  20. AtmobLog.d(tag, 'init success:$result');
  21. _setUiConfig();
  22. });
  23. }
  24. static EventChannel getEventChannel() {
  25. return const EventChannel("yd_quicklogin_flutter_event_channel");
  26. }
  27. static void closeLoginAuthView() {
  28. quickLoginPlugin.closeLoginAuthView();
  29. }
  30. static void _setUiConfig() {
  31. Map<String, dynamic> configMap;
  32. String file = "";
  33. if (Platform.isIOS) {
  34. file = Assets.config.iosQuickLoginConfig;
  35. } else if (Platform.isAndroid) {
  36. file = Assets.config.androidQuickLoginConfig;
  37. }
  38. rootBundle.loadString(file).then((value) async {
  39. configMap = {"uiConfig": json.decode(value)};
  40. quickLoginPlugin.setUiConfig(configMap);
  41. });
  42. }
  43. static void preFetchNumber({
  44. required void Function(String token) onSuccess,
  45. required void Function(String errorMsg) onError,
  46. }) async {
  47. // _setUiConfig();//仅测试
  48. Map<dynamic, dynamic>? map = await quickLoginPlugin.preFetchNumber();
  49. if (map?['success'] == true) {
  50. var ydToken = map?['token'];
  51. AtmobLog.d(tag, 'preFetchNumber success token:$ydToken');
  52. onSuccess(ydToken);
  53. } else {
  54. //获取预设手机号失败
  55. var ydToken = map?['token'];
  56. var errorMsg = map?['errorMsg'];
  57. AtmobLog.e(tag, "preFetchNumber error token:$ydToken,errorMsg:$errorMsg");
  58. onError(errorMsg);
  59. }
  60. }
  61. static void onePassLogin({
  62. required void Function(String ydToken, String accessToken) onSuccess,
  63. required void Function(String errorMsg) onError,
  64. }) async {
  65. try {
  66. Map<dynamic, dynamic>? map = await quickLoginPlugin.onePassLogin();
  67. if (map?["success"]) {
  68. var accessToken = map?["accessToken"];
  69. var ydToken = map?["ydToken"];
  70. AtmobLog.d(tag,
  71. "onePassLogin success ydToken:$ydToken, accessToken:$accessToken");
  72. onSuccess(ydToken, accessToken);
  73. } else {
  74. var errorMsg = map?["msg"];
  75. AtmobLog.e(tag, "onePassLogin error msg:$errorMsg");
  76. onError(errorMsg);
  77. }
  78. closeLoginAuthView();
  79. } catch (e) {
  80. onError(e.toString());
  81. closeLoginAuthView();
  82. }
  83. }
  84. }