diff --git a/android/build.gradle b/android/build.gradle index 978f32a..e0675e1 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -91,6 +91,6 @@ kapt { } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'com.finogeeks.lib:finapplet:2.30.1' + implementation 'com.finogeeks.lib:finapplet:2.31.0-alpha20210629v01' implementation 'com.finogeeks.mop:plugins:2.30.2' } \ No newline at end of file diff --git a/android/src/main/java/com/finogeeks/mop/api/ApisManager.java b/android/src/main/java/com/finogeeks/mop/api/ApisManager.java index 39bdfee..168793e 100644 --- a/android/src/main/java/com/finogeeks/mop/api/ApisManager.java +++ b/android/src/main/java/com/finogeeks/mop/api/ApisManager.java @@ -10,6 +10,7 @@ import com.finogeeks.mop.api.mop.BaseModule; import com.finogeeks.mop.api.mop.ExtensionApiModule; import com.finogeeks.mop.api.mop.VersionModule; import com.finogeeks.mop.api.mop.SmSignModule; +import com.finogeeks.mop.api.mop.WXQrCodeModule; import com.finogeeks.mop.interfaces.Event; import com.finogeeks.mop.interfaces.IApi; @@ -71,6 +72,7 @@ public class ApisManager { add(new ExtensionApiModule(activity)); add(new VersionModule(activity)); add(new SmSignModule(activity)); + add(new WXQrCodeModule(activity)); } private void add(IApi api) { diff --git a/android/src/main/java/com/finogeeks/mop/api/mop/BaseModule.java b/android/src/main/java/com/finogeeks/mop/api/mop/BaseModule.java index 6c95d06..1694dbd 100644 --- a/android/src/main/java/com/finogeeks/mop/api/mop/BaseModule.java +++ b/android/src/main/java/com/finogeeks/mop/api/mop/BaseModule.java @@ -59,7 +59,7 @@ public class BaseModule extends BaseApi { if (disablePermission == null) { disablePermission = false; } - String userId = null; + String userId = ""; if (param.get("userId") != null) { userId = (String) param.get("userId"); } diff --git a/android/src/main/java/com/finogeeks/mop/api/mop/WXQrCodeModule.java b/android/src/main/java/com/finogeeks/mop/api/mop/WXQrCodeModule.java new file mode 100644 index 0000000..2fc0174 --- /dev/null +++ b/android/src/main/java/com/finogeeks/mop/api/mop/WXQrCodeModule.java @@ -0,0 +1,48 @@ +package com.finogeeks.mop.api.mop; + +import android.content.Context; + +import com.finogeeks.lib.applet.client.FinAppClient; +import com.finogeeks.lib.applet.modules.callback.FinSimpleCallback; +import com.finogeeks.lib.applet.sdk.model.ParsedAppletInfo; +import com.finogeeks.mop.api.BaseApi; +import com.finogeeks.mop.interfaces.ICallback; + +import org.jetbrains.annotations.Nullable; + +import java.util.HashMap; +import java.util.Map; + +public class WXQrCodeModule extends BaseApi { + + public WXQrCodeModule(Context context) { + super(context); + } + + @Override + public String[] apis() { + return new String[]{"parseAppletInfoFromWXQrCode"}; + } + + @Override + public void invoke(String event, Map param, ICallback callback) { + String qrCode = (String) param.get("qrCode"); + String apiServer = (String) param.get("apiServer"); + FinAppClient.INSTANCE.getAppletApiManager().parseAppletInfoFromWXQrCode( + qrCode, + apiServer, + new FinSimpleCallback() { + @Override + public void onSuccess(ParsedAppletInfo appletInfo) { + HashMap map = new HashMap<>(); + map.put("appId", appletInfo != null ? appletInfo.getAppId() : null); + callback.onSuccess(map); + } + + @Override + public void onError(int code, @Nullable String error) { + callback.onFail(code + ", " + error); + } + }); + } +} diff --git a/example/.flutter-plugins-dependencies b/example/.flutter-plugins-dependencies index c16385a..7e25aca 100644 --- a/example/.flutter-plugins-dependencies +++ b/example/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"mop","path":"/Users/beetle/Desktop/finogeeks/gitlab/finosprite/finclip-flutter-sdk/","dependencies":[]}],"android":[{"name":"mop","path":"/Users/beetle/Desktop/finogeeks/gitlab/finosprite/finclip-flutter-sdk/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"mop","dependencies":[]}],"date_created":"2021-06-09 21:47:48.185375","version":"2.0.3"} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"mop","path":"/Users/edy/Documents/公司文档/Code/finclip-flutter-sdk/","dependencies":[]}],"android":[{"name":"mop","path":"/Users/edy/Documents/公司文档/Code/finclip-flutter-sdk/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"mop","dependencies":[]}],"date_created":"2021-06-24 18:01:19.402564","version":"2.2.1"} \ No newline at end of file diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index 643596e..6dc2ef8 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -1,29 +1,3 @@ -PODS: - - FinApplet (2.12.3) - - Flutter (1.0.0) - - mop (0.1.0): - - FinApplet - - Flutter - -DEPENDENCIES: - - Flutter (from `.symlinks/flutter/ios`) - - mop (from `.symlinks/plugins/mop/ios`) - -SPEC REPOS: - https://git.finogeeks.club/finoapp-ios/FinPods: - - FinApplet - -EXTERNAL SOURCES: - Flutter: - :path: ".symlinks/flutter/ios" - mop: - :path: ".symlinks/plugins/mop/ios" - -SPEC CHECKSUMS: - FinApplet: a79f16c3f1e982a78b152544bc0d30add70068c6 - Flutter: 0e3d915762c693b495b44d77113d4970485de6ec - mop: e3eac9de90d3e331268e9c9e8308e233e540ad1c - PODFILE CHECKSUM: fa591ea0d89752dd0191ae3f82c83db034678e82 -COCOAPODS: 1.9.1 +COCOAPODS: 1.10.1 diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 4ade7ea..3bcf55a 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -150,7 +150,6 @@ 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 5938D4658D84E94E9BCEAF2A /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -224,21 +223,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 5938D4658D84E94E9BCEAF2A /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -351,7 +335,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -372,6 +356,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", @@ -431,7 +416,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -480,7 +465,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -501,6 +486,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", @@ -526,6 +512,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LIBRARY_SEARCH_PATHS = ( "$(inherited)", diff --git a/example/pubspec.lock b/example/pubspec.lock index c46bddd..0f7cf31 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -5,56 +5,56 @@ packages: dependency: transitive description: name: async - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted - version: "2.5.0" + version: "2.6.1" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "2.1.0" characters: dependency: transitive description: name: characters - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.1.0" charcode: dependency: transitive description: name: charcode - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.2.0" clock: dependency: transitive description: name: clock - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.1.0" collection: dependency: transitive description: name: collection - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.15.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "0.1.3" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.2.0" flutter: @@ -71,14 +71,14 @@ packages: dependency: transitive description: name: matcher - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "0.12.10" meta: dependency: transitive description: name: meta - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.3.0" mop: @@ -87,12 +87,12 @@ packages: path: ".." relative: true source: path - version: "2.29.3" + version: "2.30.1" path: dependency: transitive description: name: path - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.8.0" sky_engine: @@ -104,58 +104,58 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted - version: "1.8.0" + version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted - version: "0.2.19" + version: "0.3.0" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.3.0" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "2.1.0" sdks: - dart: ">=2.12.0-0.0 <3.0.0" + dart: ">=2.12.0 <3.0.0" flutter: ">=1.10.0" diff --git a/ios/Classes/Api/MOP_parseAppletInfoFromWXQrCode.h b/ios/Classes/Api/MOP_parseAppletInfoFromWXQrCode.h new file mode 100644 index 0000000..904f380 --- /dev/null +++ b/ios/Classes/Api/MOP_parseAppletInfoFromWXQrCode.h @@ -0,0 +1,18 @@ +// +// MOP_parseWXQrCode.h +// mop +// +// Created by EDY on 2021/6/22. +// + +#import +#import "MOPBaseApi.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MOP_parseAppletInfoFromWXQrCode : MOPBaseApi +@property(nonatomic,copy)NSString* qrCode; //二维码url +@property(nonatomic,copy)NSString* apiServer; //服务器地址 +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/Classes/Api/MOP_parseAppletInfoFromWXQrCode.m b/ios/Classes/Api/MOP_parseAppletInfoFromWXQrCode.m new file mode 100644 index 0000000..ccce5ce --- /dev/null +++ b/ios/Classes/Api/MOP_parseAppletInfoFromWXQrCode.m @@ -0,0 +1,29 @@ +// +// MOP_parseWXQrCode.m +// mop +// +// Created by EDY on 2021/6/22. +// + +#import "MOP_parseAppletInfoFromWXQrCode.h" +#import "MOPTools.h" +#import + +@implementation MOP_parseAppletInfoFromWXQrCode + +- (void)setupApiWithSuccess:(void (^)(NSDictionary * _Nonnull))success failure:(void (^)(id _Nullable))failure cancel:(void (^)(void))cancel { + NSLog(@"MOP_parseWXQrCode:%@", self.qrCode); + [[FATClient sharedClient] parseAppletInfoFromWXQrCode:self.qrCode apiServer:self.apiServer completion:^(FATAppletSimpleInfo *appInfo, FATError *aError) { + if (aError) { + failure(aError.description); + }else{ + NSMutableDictionary *dataDic = [[NSMutableDictionary alloc]init]; + if (appInfo && appInfo.appId) { + [dataDic setObject:appInfo.appId forKey:@"appId"]; + } + success(dataDic); + } + }]; +} + +@end diff --git a/ios/mop.podspec b/ios/mop.podspec index 37c9bcc..0d73c3f 100644 --- a/ios/mop.podspec +++ b/ios/mop.podspec @@ -3,7 +3,7 @@ # Pod::Spec.new do |s| s.name = 'mop' - s.version = '0.1.0' + s.version = '0.1.1' s.summary = 'finclip miniprogram flutter sdk' s.description = <<-DESC A finclip miniprogram flutter sdk. @@ -17,7 +17,7 @@ A finclip miniprogram flutter sdk. s.dependency 'Flutter' s.ios.deployment_target = '9.0' - s.dependency 'FinApplet' , '2.30.1' - s.dependency 'FinAppletExt' , '2.30.1' + s.dependency 'FinApplet' , '2.31.0-alpha20210630v04' + s.dependency 'FinAppletExt' , '2.31.0-alpha20210630v04' end diff --git a/ios/mop.podspec.tpl b/ios/mop.podspec.tpl index b6b2973..5071fdc 100644 --- a/ios/mop.podspec.tpl +++ b/ios/mop.podspec.tpl @@ -3,7 +3,7 @@ # Pod::Spec.new do |s| s.name = 'mop' - s.version = '0.1.0' + s.version = '0.1.1' s.summary = 'finclip miniprogram flutter sdk' s.description = <<-DESC A finclip miniprogram flutter sdk. diff --git a/lib/mop.dart b/lib/mop.dart index 0b30f08..aa0f70f 100644 --- a/lib/mop.dart +++ b/lib/mop.dart @@ -165,6 +165,16 @@ class Mop { return await _channel.invokeMapMethod("scanOpenApplet", params); } + /// + /// 根据微信QrCode信息解析小程序信息 + /// + Future> parseAppletInfoFromWXQrCode( + String qrCode, String apiServer) async { + final ret = await _channel.invokeMapMethod("parseAppletInfoFromWXQrCode", + {"qrCode": qrCode, "apiServer": apiServer}); + return Map.from(ret); + } + /// /// register handler to provide custom info or behaviour /// 注册小程序事件处理 diff --git a/pubspec.lock b/pubspec.lock index c2442ac..ae675f0 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,49 +5,49 @@ packages: dependency: transitive description: name: async - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted - version: "2.5.0" + version: "2.6.1" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "2.1.0" characters: dependency: transitive description: name: characters - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.1.0" charcode: dependency: transitive description: name: charcode - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.2.0" clock: dependency: transitive description: name: clock - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.1.0" collection: dependency: transitive description: name: collection - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.15.0" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.2.0" flutter: @@ -64,21 +64,21 @@ packages: dependency: transitive description: name: matcher - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "0.12.10" meta: dependency: transitive description: name: meta - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.3.0" path: dependency: transitive description: name: path - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.8.0" sky_engine: @@ -90,58 +90,58 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted - version: "1.8.0" + version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted - version: "0.2.19" + version: "0.3.0" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "1.3.0" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.flutter-io.cn" + url: "https://mirrors.tuna.tsinghua.edu.cn/dart-pub" source: hosted version: "2.1.0" sdks: - dart: ">=2.12.0-0.0 <3.0.0" + dart: ">=2.12.0 <3.0.0" flutter: ">=1.10.0"