@@ -11,6 +11,17 @@ import 'package:platform/platform.dart';
1111typedef JVClickWidgetEventListener = void Function (String widgetId);
1212/// 授权页事件回调 @since 2.4.0
1313typedef JVAuthPageEventListener = void Function (JVAuthPageEvent event);
14+ /**
15+ * 一键登录接口的回调监听
16+ *
17+ * @param event
18+ * code :返回码,6000代表loginToken获取成功,6001代表loginToken获取失败,其他返回码详见描述
19+ * message :返回码的解释信息,若获取成功,内容信息代表loginToken。
20+ * operator :成功时为对应运营商,CM代表中国移动,CU代表中国联通,CT代表中国电信。失败时可能为 null
21+ *
22+ * @discussion 调用 loginAuth 接口后,可以通过添加此监听事件来监听接口的返回结果
23+ * */
24+ typedef JVLoginAuthCallBackListener = void Function (JVListenerEvent event);
1425
1526
1627
@@ -22,6 +33,7 @@ class JVEventHandlers {
2233
2334 Map <String , JVClickWidgetEventListener > clickEventsMap = Map ();
2435 List <JVAuthPageEventListener > authPageEvents = [];
36+ List <JVLoginAuthCallBackListener > loginAuthCallBackEvents = [];
2537}
2638
2739
@@ -54,7 +66,10 @@ class Jverify {
5466 addAuthPageEventListener (JVAuthPageEventListener callback) {
5567 _eventHanders.authPageEvents.add (callback);
5668 }
57-
69+ /// loginAuth 接口回调的监听
70+ addLoginAuthCallBackListener (JVLoginAuthCallBackListener callback) {
71+ _eventHanders.loginAuthCallBackEvents.add (callback);
72+ }
5873
5974 Future <void > _handlerMethod (MethodCall call) async {
6075 print ("handleMethod method = ${call .method }" );
@@ -76,6 +91,15 @@ class Jverify {
7691 }
7792 }
7893 break ;
94+ case 'onReceiveLoginAuthCallBackEvent' : {
95+ for (JVLoginAuthCallBackListener cb in _eventHanders.loginAuthCallBackEvents) {
96+ Map json = call.arguments.cast <dynamic , dynamic >();
97+ JVListenerEvent event = JVListenerEvent .fromJson (json);
98+ cb (event);
99+ _eventHanders.loginAuthCallBackEvents.remove (cb);
100+ }
101+ }
102+ break ;
79103 default :
80104 throw new UnsupportedError ("Unrecognized Event" );
81105 }
@@ -160,7 +184,12 @@ class Jverify {
160184 /*
161185 * SDK请求授权一键登录
162186 *
163- * v2.4.0 之后同时支持授权页事件监听,开发者需添加 JVAuthPageEventListener 监听
187+ * 获取接口回调数据的两种方式:
188+ * 1、可通过接口异步返回的 map 获得
189+ * 2、通过添加 JVLoginAuthCallBackListener 监听,来监听接口的返回结果
190+ *
191+ * 授权页面点击事件监听:
192+ * 通过添加 JVAuthPageEventListener 监听,来监听授权页点击事件, SDK v2.4.0 开始支持
164193 *
165194 * */
166195 Future <Map <dynamic , dynamic >> loginAuth (bool autoDismiss) async {
@@ -481,21 +510,43 @@ enum JVTextAlignmentType {
481510 center
482511}
483512
513+ /// 监听返回类
514+ class JVListenerEvent {
515+ int code;//返回码,具体事件返回码请查看(https://docs.jiguang.cn/jverification/client/android_api/)
516+ String message;//事件描述、事件返回值等
517+ String operator ;//成功时为对应运营商,CM代表中国移动,CU代表中国联通,CT代表中国电信。失败时可能为null
484518
485- /// 授权页事件
486- class JVAuthPageEvent {
487- final int code;//返回码 // 具体事件返回码请查看(https://docs.jiguang.cn/jverification/client/android_api/)
488- final String message;//事件描述
519+ JVListenerEvent .fromJson (Map <dynamic , dynamic > json)
520+ : code = json['code' ],
521+ message = json['message' ],
522+ operator = json['operator' ];
523+
524+ Map toMap () {
525+ return {
526+ 'code' : code ?? = null ,
527+ 'message' : message ?? = null ,
528+ 'operator' : operator ?? = null
529+ };
530+ }
531+ }
489532
533+ /// 授权页事件
534+ class JVAuthPageEvent extends JVListenerEvent {
535+ @override
490536 JVAuthPageEvent .fromJson (Map <dynamic , dynamic > json)
491- : code = json['code' ],
492- message = json['message' ];
537+ : super .fromJson (json);
493538
539+ @override
494540 Map toMap () {
495- return {'code' : code, 'message' : message};
541+ return {
542+ 'code' : code ?? = null ,
543+ 'message' : message ?? = null ,
544+ };
496545 }
497546}
498547
548+
549+
499550/*
500551* iOS 布局参照 item (Android 只)
501552*
0 commit comments