From 48f357de177d85b19829802847da3fa32d3a8623 Mon Sep 17 00:00:00 2001 From: wanghualei Date: Wed, 5 Jul 2023 17:30:57 +0800 Subject: [PATCH] update getUserProfile --- .../mop/api/mop/AppletHandlerModule.java | 4 ++ .../finogeeks/mop/api/mop/InitSDKModule.java | 4 ++ .../mop/impls/MyUserProfileHandler.java | 57 +++++++++++++++++++ example/lib/main.dart | 17 ++++++ example/pubspec.lock | 11 +--- pubspec.lock | 28 ++++----- 6 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 android/src/main/java/com/finogeeks/mop/impls/MyUserProfileHandler.java diff --git a/android/src/main/java/com/finogeeks/mop/api/mop/AppletHandlerModule.java b/android/src/main/java/com/finogeeks/mop/api/mop/AppletHandlerModule.java index aa54290..2b7b830 100644 --- a/android/src/main/java/com/finogeeks/mop/api/mop/AppletHandlerModule.java +++ b/android/src/main/java/com/finogeeks/mop/api/mop/AppletHandlerModule.java @@ -24,6 +24,7 @@ import com.finogeeks.mop.interfaces.ICallback; import com.finogeeks.mop.service.MopPluginService; import com.finogeeks.mop.utils.AppletUtils; import com.finogeeks.mop.utils.GsonUtil; +import com.finogeeks.mop.impls.MyUserProfileHandler; import com.google.gson.reflect.TypeToken; import org.jetbrains.annotations.NotNull; @@ -65,6 +66,9 @@ public class AppletHandlerModule extends BaseApi { Log.d("AppletHandlerModule", "registerAppletHandler"); MethodChannel channel = MopPluginService.getInstance().getMethodChannel(); + // getUserProfile的内置实现 + FinAppClient.INSTANCE.getFinAppConfig().setGetUserProfileHandlerClass(MyUserProfileHandler.class.getName()); + FinAppClient.INSTANCE.getAppletApiManager().setAppletHandler(mIAppletHandler = new IAppletHandler() { @Nullable diff --git a/android/src/main/java/com/finogeeks/mop/api/mop/InitSDKModule.java b/android/src/main/java/com/finogeeks/mop/api/mop/InitSDKModule.java index 628a555..1f08bb3 100644 --- a/android/src/main/java/com/finogeeks/mop/api/mop/InitSDKModule.java +++ b/android/src/main/java/com/finogeeks/mop/api/mop/InitSDKModule.java @@ -14,6 +14,7 @@ import com.finogeeks.mop.api.BaseApi; import com.finogeeks.mop.api.mop.util.InitUtils; import com.finogeeks.mop.interfaces.ICallback; import com.finogeeks.mop.service.MopPluginService; +import com.finogeeks.mop.impls.MyUserProfileHandler; import com.finogeeks.xlog.XLogLevel; import com.google.gson.Gson; @@ -199,6 +200,9 @@ public class InitSDKModule extends BaseApi { configBuilder.setLocale(Locale.SIMPLIFIED_CHINESE); } + // getUserProfile的内置实现 + configBuilder.setGetUserProfileHandlerClass(MyUserProfileHandler.class.getName()); + // uiConfig FinAppConfig.UIConfig uiConfig = InitUtils.createUIConfigFromMap(uiConfigMap); if (uiConfig != null) { diff --git a/android/src/main/java/com/finogeeks/mop/impls/MyUserProfileHandler.java b/android/src/main/java/com/finogeeks/mop/impls/MyUserProfileHandler.java new file mode 100644 index 0000000..295866a --- /dev/null +++ b/android/src/main/java/com/finogeeks/mop/impls/MyUserProfileHandler.java @@ -0,0 +1,57 @@ +package com.finogeeks.mop.impls; + +import android.content.Context; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; + +import com.finogeeks.lib.applet.client.FinAppInfo; +import com.finogeeks.lib.applet.modules.userprofile.IUserProfileHandler; +import com.finogeeks.mop.service.MopPluginService; + +import java.util.Map; + +import org.jetbrains.annotations.NotNull; +import org.json.JSONObject; + +import io.flutter.plugin.common.MethodChannel; + +public class MyUserProfileHandler implements IUserProfileHandler { + private static final String TAG = "MyUserProfileHandler"; + + private Handler handler = new Handler(Looper.getMainLooper()); + + @Override + public void getUserProfileWithAppletInfo(@NotNull Context context, @NotNull FinAppInfo finAppInfo, @NotNull UserProfileCallback callback) { + MethodChannel channel = MopPluginService.getInstance().getMethodChannel(); + Log.d(TAG, "getUserProfileWithAppletInfo:"); + channel.invokeMethod("extensionApi:getUserProfile", null, new MethodChannel.Result() { + @Override + public void success(Object mapResult) { + JSONObject result = null; + try { + result = new JSONObject(mapResult); + } catch (Exception e) { + + } + + if (result == null) { + callback.onError(null); + } else { + callback.onSuccess(result); + } + } + + @Override + public void error(String errorCode, String errorMessage, Object errorDetails) { + callback.onError(null); + } + + @Override + public void notImplemented() { + callback.onError(null); + } + }); + + } +} diff --git a/example/lib/main.dart b/example/lib/main.dart index efd7c1b..411b093 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -81,9 +81,26 @@ class _MyAppState extends State { print(res); Mop.instance.registerAppletHandler(MyAppletHandler()); + Mop.instance.registerExtensionApi('getUserProfile', getUserProfile); + if (!mounted) return; } + Future> getUserProfile(dynamic params) async { + Map result = { + "userInfo":{ + "nickName" : "haley", + "avatarUrl" : "https://www.finclip.com", + "gender" : 1, + "country" : "China", + "province" : "Guangdong", + "city" : "shenzhen", + } + }; + + return result; +} + Widget _buildAppletItem( String appletId, String itemName, VoidCallback tapAction) { return GestureDetector( diff --git a/example/pubspec.lock b/example/pubspec.lock index c8e9952..10ef965 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -115,7 +115,7 @@ packages: path: ".." relative: true source: path - version: "2.40.13" + version: "2.41.1" path: dependency: transitive description: @@ -169,14 +169,7 @@ packages: name: test_api url: "https://pub.flutter-io.cn" source: hosted - version: "0.4.3" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0" + version: "0.4.9" vector_math: dependency: transitive description: diff --git a/pubspec.lock b/pubspec.lock index f39f99b..7d68fe5 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -42,14 +42,14 @@ packages: name: collection url: "https://pub.flutter-io.cn" source: hosted - version: "1.15.0" + version: "1.16.0" fake_async: dependency: transitive description: name: fake_async url: "https://pub.flutter-io.cn" source: hosted - version: "1.2.0" + version: "1.3.0" flutter: dependency: "direct main" description: flutter @@ -88,6 +88,13 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "0.12.11" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.1.4" meta: dependency: transitive description: @@ -101,7 +108,7 @@ packages: name: path url: "https://pub.flutter-io.cn" source: hosted - version: "1.8.0" + version: "1.8.1" sky_engine: dependency: transitive description: flutter @@ -113,7 +120,7 @@ packages: name: source_span url: "https://pub.flutter-io.cn" source: hosted - version: "1.8.1" + version: "1.8.2" stack_trace: dependency: transitive description: @@ -148,21 +155,14 @@ packages: name: test_api url: "https://pub.flutter-io.cn" source: hosted - version: "0.4.3" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.flutter-io.cn" - source: hosted - version: "1.3.0" + version: "0.4.9" vector_math: dependency: transitive description: name: vector_math url: "https://pub.flutter-io.cn" source: hosted - version: "2.1.1" + version: "2.1.2" sdks: - dart: ">=2.14.0 <3.0.0" + dart: ">=2.17.0-0 <3.0.0" flutter: ">=2.2.3"