sdk 升级

phiz_2.43.5.1
Sean 2024-03-13 17:25:01 +08:00
parent a300a7b5b2
commit 3791672084
12 changed files with 131 additions and 104 deletions

View File

@ -91,6 +91,6 @@ kapt {
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.finogeeks.lib:finapplet:2.42.13'
implementation 'com.finogeeks.mop:plugins:2.42.13'
implementation 'com.finogeeks.lib:finapplet:2.43.5'
implementation 'com.finogeeks.mop:plugins:2.43.5'
}

View File

@ -64,12 +64,19 @@ public class AppletModule extends BaseApi {
Map<String, String> params = (Map) param.get("params");
String apiServer = (String) param.get("apiServer");
Boolean isSingleProcess = (Boolean) param.get("isSingleProcess");
Boolean isSingTask = (Boolean) param.get("isSingTask");
IFinAppletRequest.ProcessMode processMode;
if (Boolean.TRUE.equals(isSingleProcess)) {
processMode = IFinAppletRequest.ProcessMode.SINGLE;
} else {
processMode = IFinAppletRequest.ProcessMode.MULTI;
}
IFinAppletRequest.TaskMode taskMode;
if (Boolean.TRUE.equals(isSingTask)) {
taskMode = IFinAppletRequest.TaskMode.SINGLE;
} else {
taskMode = IFinAppletRequest.TaskMode.MULTI;
}
// mContextFlutterActivity
// Android 6.07.0contextmContext
// 使Application Context
@ -82,7 +89,9 @@ public class AppletModule extends BaseApi {
IFinAppletRequest.Companion.fromAppId(apiServer, appId)
.setStartParams(startParams)
.setSequence(sequence)
.setProcessMode(processMode),
.setProcessMode(processMode)
.setTaskMode(taskMode)
,
null
);
// FinAppClient.INSTANCE.getAppletApiManager().startApplet(context, apiServer, appId, sequence, startParams,null);
@ -154,12 +163,19 @@ public class AppletModule extends BaseApi {
String offlineMiniprogramZipPath = (String) param.get("offlineMiniprogramZipPath");
String offlineFrameworkZipPath = (String) param.get("offlineFrameworkZipPath");
Boolean isSingleProcess = (Boolean) param.get("isSingleProcess");
Boolean isSingTask = (Boolean) param.get("isSingTask");
IFinAppletRequest.ProcessMode processMode;
if (Boolean.TRUE.equals(isSingleProcess)) {
processMode = IFinAppletRequest.ProcessMode.SINGLE;
} else {
processMode = IFinAppletRequest.ProcessMode.MULTI;
}
IFinAppletRequest.TaskMode taskMode;
if (Boolean.TRUE.equals(isSingTask)) {
taskMode = IFinAppletRequest.TaskMode.SINGLE;
} else {
taskMode = IFinAppletRequest.TaskMode.MULTI;
}
Log.d("MopPlugin", "startApplet (appId=" + appId + ", sequence=" + sequence + ", apiServer=" + apiServer + ", isSingleProcess:" + isSingleProcess);
// mContextFlutterActivity
@ -175,7 +191,8 @@ public class AppletModule extends BaseApi {
.setSequence(sequence)
.setStartParams(params)
.setOfflineParams(offlineFrameworkZipPath, offlineMiniprogramZipPath)
.setProcessMode(processMode),
.setProcessMode(processMode)
.setTaskMode(taskMode),
null);
// request
// FinAppClient.INSTANCE.getAppletApiManager().startApplet(context, IFinAppletRequest.Companion.fromAppId("apiServer", "appId")
@ -186,14 +203,21 @@ public class AppletModule extends BaseApi {
private void scanOpenApplet(Map param, ICallback callback) {
String info = String.valueOf(param.get("info"));
Boolean isSingleProcess = (Boolean) param.get("isSingleProcess");
Boolean isSingTask = (Boolean) param.get("isSingTask");
IFinAppletRequest.ProcessMode processMode;
if (Boolean.TRUE.equals(isSingleProcess)) {
processMode = IFinAppletRequest.ProcessMode.SINGLE;
} else {
processMode = IFinAppletRequest.ProcessMode.MULTI;
}
IFinAppletRequest.TaskMode taskMode;
if (Boolean.TRUE.equals(isSingTask)) {
taskMode = IFinAppletRequest.TaskMode.SINGLE;
} else {
taskMode = IFinAppletRequest.TaskMode.MULTI;
}
FinAppClient.INSTANCE.getAppletApiManager().startApplet(mContext, IFinAppletRequest.Companion.fromDecrypt(info)
.setProcessMode(processMode), null);
.setProcessMode(processMode).setTaskMode(taskMode), null);
// FinAppClient.INSTANCE.getAppletApiManager().startApplet(mContext, new StartAppletDecryptRequest(info),null);
callback.onSuccess(new HashMap());
}
@ -201,14 +225,21 @@ public class AppletModule extends BaseApi {
private void qrcodeOpenApplet(Map param, ICallback callback) {
String qrcode = String.valueOf(param.get("qrcode"));
Boolean isSingleProcess = (Boolean) param.get("isSingleProcess");
Boolean isSingTask = (Boolean) param.get("isSingTask");
IFinAppletRequest.ProcessMode processMode;
if (Boolean.TRUE.equals(isSingleProcess)) {
processMode = IFinAppletRequest.ProcessMode.SINGLE;
} else {
processMode = IFinAppletRequest.ProcessMode.MULTI;
}
IFinAppletRequest.TaskMode taskMode;
if (Boolean.TRUE.equals(isSingTask)) {
taskMode = IFinAppletRequest.TaskMode.SINGLE;
} else {
taskMode = IFinAppletRequest.TaskMode.MULTI;
}
FinAppClient.INSTANCE.getAppletApiManager().startApplet(mContext, IFinAppletRequest.Companion.fromQrCode(qrcode)
.setProcessMode(processMode), new FinCallback<String>() {
.setProcessMode(processMode).setTaskMode(taskMode), new FinCallback<String>() {
@Override
public void onSuccess(String s) {
callback.onSuccess(new HashMap());

View File

@ -25,30 +25,24 @@ public class ExtensionApiModule extends BaseApi {
private static final String TAG = "ExtensionApiModule";
private final Context cur;
private Handler handler = new Handler(Looper.getMainLooper());
public ExtensionApiModule(Context context) {
super(context);
cur = context;
}
@Override
public String[] apis() {
return new String[]{"registerExtensionApi", "registerSyncExtensionApi", "addWebExtentionApi"};
return new String[]{"registerExtensionApi","registerSyncExtensionApi","addWebExtentionApi"};
}
@Override
public void invoke(String s, Map param, ICallback iCallback) {
boolean isFinAppProcess = FinAppClient.INSTANCE.isFinAppProcess(cur);
Log.d(TAG, "ExtensionApiModule invoke register api s:" + s + " param:" + param +" isFinAppProcess:"+isFinAppProcess);
if(s.equals("registerExtensionApi")) {
MethodChannel channel = MopPluginService.getInstance().getMethodChannel();
String name = (String) param.get("name");
Log.d(TAG, "registerExtensionApi:" + name);
FinAppClient.INSTANCE.getExtensionApiManager().registerApi(new com.finogeeks.lib.applet.api.BaseApi(cur) {
FinAppClient.INSTANCE.getExtensionApiManager().registerApi(new com.finogeeks.lib.applet.api.BaseApi(getContext()) {
@Override
public String[] apis() {
return new String[]{name};
@ -56,7 +50,7 @@ public class ExtensionApiModule extends BaseApi {
@Override
public void invoke(String s, JSONObject jsonObject, com.finogeeks.lib.applet.interfaces.ICallback iCallback) {
Log.d("MopPlugin", "invoke extensionApi:" + s + ",params:" + jsonObject+" isFinAppProcess:"+isFinAppProcess);
Log.d("MopPlugin", "invoke extensionApi:" + s + ",params:" + jsonObject);
Map params = GsonUtil.gson.fromJson(jsonObject.toString(), HashMap.class);
handler.post(() -> {
channel.invokeMethod("extensionApi:" + name, params, new MethodChannel.Result() {
@ -162,7 +156,7 @@ public class ExtensionApiModule extends BaseApi {
MethodChannel channel = MopPluginService.getInstance().getMethodChannel();
String name = (String) param.get("name");
Log.d(TAG, "addWebExtentionApi:" + name);
FinAppClient.INSTANCE.getExtensionWebApiManager().registerApi(new com.finogeeks.lib.applet.api.BaseApi(cur) {
FinAppClient.INSTANCE.getExtensionWebApiManager().registerApi(new com.finogeeks.lib.applet.api.BaseApi(getContext()) {
@Override
public String[] apis() {
return new String[]{name};

View File

@ -138,6 +138,12 @@ public class InitSDKModule extends BaseApi {
if (maxRunningApplet != null) {
configBuilder.setMaxRunningApplet(maxRunningApplet);
}
Integer backgroundFetchPeriod = (Integer) configMap.get("backgroundFetchPeriod");
if (backgroundFetchPeriod != null) {
configBuilder.setBackgroundFetchPeriod(backgroundFetchPeriod);
}
Integer webViewMixedContentMode = (Integer) configMap.get("webViewMixedContentMode");
if (webViewMixedContentMode != null) {
configBuilder.setWebViewMixedContentMode(webViewMixedContentMode);

View File

@ -39,6 +39,7 @@ public class InitUtils {
uiConfig.setHideShareAppletMenu((Boolean) map.get("isHideShareAppletMenu"));
uiConfig.setHideAddToDesktopMenu((Boolean) map.get("isHideAddToDesktopMenu"));
uiConfig.setHideFavoriteMenu((Boolean) map.get("isHideFavoriteMenu"));
uiConfig.setHideClearCacheMenu((Boolean) map.get("isHideClearCacheMenu"));
uiConfig.setHideSettingMenu((Boolean) map.get("isHideSettingMenu"));
uiConfig.setHideTransitionCloseButton((Boolean) map.get("hideTransitionCloseButton"));
uiConfig.setUseNativeLiveComponent((Boolean) map.get("useNativeLiveComponent"));

View File

@ -37,46 +37,26 @@
if([result isKindOfClass:[FlutterError class]]|| [result isKindOfClass:[FlutterMethodNotImplemented class] ])
{
completion(FATExtensionCodeFailure,nil);
}else
{
} else {
completion(FATExtensionCodeSuccess,result);
}
}];
}
- (NSDictionary *)getUserInfoWithAppletInfo:(FATAppletInfo *)appletInfo {
NSLog(@"getUserInfoWithAppletInfo");
__block NSDictionary *userInfo;
CFRunLoopRef runLoop = CFRunLoopGetCurrent();
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
[channel invokeMethod:@"extensionApi:getUserInfo" arguments:nil result:^(id _Nullable result) {
userInfo = result;
CFRunLoopStop(runLoop);
}];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
CFRunLoopStop(runLoop);
});
CFRunLoopRun();
return userInfo;
}
- (BOOL)appletInfo:(FATAppletInfo *)appletInfo didClickMoreBtnAtPath:(NSString *)path {
__block BOOL flag;
CFRunLoopRef runLoop = CFRunLoopGetCurrent();
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
NSLog(@"appletInfo:didClickMoreBtnAtPath,appId=%@,path=%@,channel=%@",appletInfo.appId,path,channel);
[channel invokeMethod:@"extensionApi:customCapsuleMoreButtonClick" arguments:@{@"appId": appletInfo.appId} result:^(id _Nullable result) {
if ([result isKindOfClass:[NSNumber class]]) {
flag = [result boolValue];
}
CFRunLoopStop(runLoop);
}];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
CFRunLoopStop(runLoop);
});
CFRunLoopRun();
return flag;
}
@ -89,16 +69,13 @@
[channel invokeMethod:@"extensionApi:getCustomMenus" arguments:@{@"appId": appletInfo.appId} result:^(id _Nullable result) {
if ([result isKindOfClass:[NSArray class]]) {
list = result;
NSLog(@"customMenusInApplet2222:list=%@",list);
}
CFRunLoopStop(runLoop);
}];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
CFRunLoopStop(runLoop);
});
CFRunLoopRun();
NSLog(@"customMenusInApplet:%@,list=%@",path,list);
NSMutableArray *models = [NSMutableArray array];
for (NSDictionary<NSString *, NSString *> *data in list) {
@ -129,9 +106,7 @@
return models;
}
- (void)clickCustomItemMenuWithInfo:(NSDictionary *)contentInfo inApplet:(FATAppletInfo *)appletInfo completion:(void (^)(FATExtensionCode code, NSDictionary *result))completion {
NSLog(@"HJH1,clickCustomItemMenuWithInfo");
NSError *parseError = nil;
NSMutableDictionary *shareDic = [[NSMutableDictionary alloc] initWithDictionary:[self dictionaryRepresentation:appletInfo]];
[shareDic setValue:@{@"desc" : shareDic[@"originalInfo"][@"customData"][@"detailDescription"]} forKey:@"params"];
@ -139,10 +114,10 @@
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:shareDic options:NSJSONWritingPrettyPrinted error:&parseError];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSDictionary *arguments = @{
@"appId": contentInfo[@"appId"],
@"path": contentInfo[@"path"],
@"menuId": contentInfo[@"menuId"],
@"appInfo": jsonString
@"appId": contentInfo[@"appId"],
@"path": contentInfo[@"path"],
@"menuId": contentInfo[@"menuId"],
@"appInfo": jsonString
};
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
[channel invokeMethod:@"extensionApi:onCustomMenuClick" arguments:arguments result:^(id _Nullable result) {
@ -152,7 +127,6 @@
if ([@"Desktop" isEqualToString:contentInfo[@"menuId"]]) {
[self addToDesktopItemClick:appletInfo path:contentInfo[@"path"]];
}
NSLog(@"HJH2,clickCustomItemMenuWithInfo");
}
- (NSDictionary *)dictionaryRepresentation:(FATAppletInfo *)object {

View File

@ -7,8 +7,6 @@
#import "Mop_initSDK.h"
#import "MOPTools.h"
#import "FinAppletExt.h"
@implementation MOP_initSDK
@ -70,6 +68,9 @@
config.schemes = self.config[@"schemes"];
config.webViewInspectable = [self.config[@"debug"] boolValue];
NSInteger languageInteger = [self.config[@"language"] integerValue];
if (self.config[@"backgroundFetchPeriod"]) {
config.backgroundFetchPeriod = [self.config[@"backgroundFetchPeriod"] integerValue];
}
if (languageInteger == 1) {
config.language = FATPreferredLanguageEnglish;
} else {
@ -110,6 +111,7 @@
uiconfig.hideRefreshMenu = [_uiConfig[@"isHideRefreshMenu"] boolValue];
uiconfig.hideFavoriteMenu = [_uiConfig[@"isHideFavoriteMenu"] boolValue];
uiconfig.hideAddToDesktopMenu = [_uiConfig[@"isHideAddToDesktopMenu"] boolValue];
uiconfig.hideClearCacheMenu = [_uiConfig[@"isHideClearCacheMenu"] boolValue];
//
if (_uiConfig[@"capsuleConfig"]) {

View File

@ -7,7 +7,7 @@
#import "MOP_initialize.h"
#import <FinApplet/FinApplet.h>
#import "FinAppletExt.h"
#import <FinAppletExt/FinAppletExt.h>
#import <FinAppletBLE/FinAppletBLE.h>
#import "MOPTools.h"
@ -127,9 +127,6 @@
// [[FATExtClient sharedClient] fat_prepareExtensionApis];
[[FATClient sharedClient].logManager initLogWithLogDir:nil logLevel:FATLogLevelVerbose consoleLog:YES];
[[FATClient sharedClient] setEnableLog:YES];
success(@{});

View File

@ -21,9 +21,8 @@ A finclip miniprogram flutter sdk.
s.vendored_libraries = 'Classes/FinAppletExt/Vendor/Lame/libmp3lame.a'
s.static_framework = true
s.dependency 'FinApplet' , '2.43.0-dev20230103v05'
s.dependency 'FinAppletExt' , '2.43.0-dev20230103v05'
s.dependency 'FinApplet' , '2.43.5'
s.dependency 'FinAppletExt' , '2.43.5'
s.dependency 'FinAppletBLE' , '2.43.0-dev20230103v05'
end

View File

@ -22,8 +22,7 @@ A finclip miniprogram flutter sdk.
s.static_framework = true
s.dependency 'FinApplet' , '__finapplet_version__'
# s.dependency 'FinAppletExt' , '__finapplet_version__'
s.dependency 'FinAppletBLE'
s.dependency 'FinAppletExt' , '__finapplet_version__'
end

View File

@ -46,8 +46,8 @@ class FinStoreConfig {
this.cryptType = "MD5",
this.fingerprint,
this.encryptServerData = false,
this.enablePreloadFramework = false,
this.googleMapApiKey = ''});
this.enablePreloadFramework = true,
this.googleMapApiKey = ''});
Map<String, dynamic> toMap() {
return {
@ -166,7 +166,6 @@ class Config {
/// scheme
List<String>? schemes;
/// Android
/// debug
bool debug = false;
@ -201,7 +200,6 @@ class Config {
///
LogLevel logLevel = LogLevel.LEVEL_NONE;
/// Android
///
/// 1 1 * 24 * 60 * 60
int? logMaxAliveSec;
@ -241,6 +239,9 @@ class Config {
/// j2v8
bool enableJ2V8 = false;
/// (), 03-12
int backgroundFetchPeriod = 12;
Config(this.finStoreConfigs);
Map<String, dynamic> toMap() {
@ -282,11 +283,12 @@ class Config {
"logMaxAliveSec": logMaxAliveSec,
"logDir": logDir,
"enablePreNewProcess": enablePreNewProcess,
"language":language.index,
"language": language.index,
"useLocalTbsCore": useLocalTbsCore,
"tbsCoreUrl": tbsCoreUrl,
"enableJ2V8": enableJ2V8,
"customLanguagePath": customLanguagePath,
"backgroundFetchPeriod": backgroundFetchPeriod,
"localeLanguage": localeLanguage,
};
}
@ -342,12 +344,15 @@ class UIConfig {
/// ...
bool isHideFavoriteMenu = true;
// ... false
/// ... false
bool isHideRefreshMenu = false;
// ... false
/// ... false
bool isHideSettingMenu = false;
/// ... false
bool isHideClearCacheMenu = false;
///
CapsuleConfig? capsuleConfig;
@ -369,7 +374,7 @@ class UIConfig {
// true
bool autoAdaptDarkMode = false;
// 使livefalse(iOS)
// 使livefalse
// trueLiveSDK
bool useNativeLiveComponent = false;
@ -421,6 +426,7 @@ class UIConfig {
"isHideSettingMenu": isHideSettingMenu,
"isHideAddToDesktopMenu": isHideAddToDesktopMenu,
"isHideFavoriteMenu": isHideFavoriteMenu,
"isHideClearCacheMenu": isHideClearCacheMenu,
"hideTransitionCloseButton": hideTransitionCloseButton,
"capsuleConfig": capsuleConfig?.toMap(),
"navHomeConfig": navHomeConfig?.toMap(),
@ -787,12 +793,16 @@ class BaseAppletRequest {
// androidfalse
bool isSingleProcess;
// androidfalse
bool isSingTask;
BaseAppletRequest({
required this.apiServer,
required this.appletId,
this.startParams,
this.animated = true,
this.isSingleProcess = false,
this.isSingTask = false,
});
Map<String, dynamic> toMap() {
@ -802,6 +812,7 @@ class BaseAppletRequest {
"startParams": startParams,
"animated": animated,
"isSingleProcess": isSingleProcess,
"isSingTask": isSingTask,
};
}
}
@ -835,6 +846,9 @@ class RemoteAppletRequest {
// androidfalse
bool isSingleProcess;
// androidfalse
bool isSingTask;
RemoteAppletRequest({
required this.apiServer,
required this.appletId,
@ -845,6 +859,7 @@ class RemoteAppletRequest {
this.animated = true,
this.transitionStyle = TranstionStyle.TranstionStyleUp,
this.isSingleProcess = false,
this.isSingTask = false,
});
Map<String, dynamic> toMap() {
@ -853,7 +868,8 @@ class RemoteAppletRequest {
"appletId": appletId,
"animated": animated,
"isSingleProcess": isSingleProcess,
"transitionStyle":transitionStyle.index,
"isSingTask": isSingTask,
"transitionStyle": transitionStyle.index,
};
if (startParams != null) result["startParams"] = startParams;
if (offlineMiniprogramZipPath != null)
@ -876,13 +892,18 @@ class QRCodeAppletRequest {
// androidfalse
bool isSingleProcess;
QRCodeAppletRequest(this.qrCode, {this.isSingleProcess = false});
// androidfalse
bool isSingTask;
QRCodeAppletRequest(this.qrCode,
{this.isSingleProcess = false, this.isSingTask = false});
Map<String, dynamic> toMap() {
return {
"apiServer": qrCode,
"animated": animated,
"isSingleProcess": isSingleProcess,
"isSingTask": isSingTask,
};
}
}
@ -915,8 +936,8 @@ enum BOOLState {
}
enum LanguageType {
Chinese, //
English, //
Chinese, //
English, //
}
enum LogLevel {
@ -1020,24 +1041,21 @@ class Mop {
/// [customWebViewUserAgent] webview ua
/// [appletIntervalUpdateLimit]
/// [maxRunningApplet]
Future<Map> initialize(
String sdkkey,
String secret, {
String? apiServer,
String? apiPrefix,
String? cryptType,
bool encryptServerData = false,
bool disablePermission = false,
String? userId,
bool debug = false,
bool bindAppletWithMainProcess = false,
int? pageCountLimit = 0,
List<FinStoreConfig>? finStoreConfigs,
UIConfig? uiConfig,
String? customWebViewUserAgent,
int? appletIntervalUpdateLimit,
int? maxRunningApplet
}) async {
Future<Map> initialize(String sdkkey, String secret,
{String? apiServer,
String? apiPrefix,
String? cryptType,
bool encryptServerData = false,
bool disablePermission = false,
String? userId,
bool debug = false,
bool bindAppletWithMainProcess = false,
int? pageCountLimit = 0,
List<FinStoreConfig>? finStoreConfigs,
UIConfig? uiConfig,
String? customWebViewUserAgent,
int? appletIntervalUpdateLimit,
int? maxRunningApplet}) async {
List<Map<String, dynamic>>? storeConfigs =
finStoreConfigs?.map((e) => e.toMap()).toList();
@ -1077,9 +1095,9 @@ class Mop {
/// [query] is miniprogram query parameters. example key1=value1&key2=value2
/// [sequence] is miniprogram sequence. example 0,1.2.3,4,5...
/// [apiServer] is optional. the mop server address. default is https://mp.finogeek.com
/// [apiPrefix] is optional. the mop server prefix. default is /api/v1/mop
/// [fingerprint] is optional. the mop sdk fingerprint. is nullable
/// [cryptType] is optional. cryptType, should be MD5/SM
/// [scene]
/// [shareDepth]
/// [isSingleProcess]
Future<Map> openApplet(
final String appId, {
final String? path,
@ -1089,6 +1107,7 @@ class Mop {
final String? scene,
final String? shareDepth,
final bool isSingleProcess = false,
final bool isSingTask = false,
}) async {
Map<String, Object> params = {'appId': appId};
Map param = {};
@ -1100,6 +1119,7 @@ class Mop {
if (scene != null) param["scene"] = scene;
if (shareDepth != null) param["shareDepth"] = shareDepth;
params["isSingleProcess"] = isSingleProcess;
params["isSingTask"] = isSingTask;
final Map ret = await _channel.invokeMethod('openApplet', params);
return ret;
}
@ -1112,19 +1132,23 @@ class Mop {
///
/// [qrcode]
Future qrcodeOpenApplet(String qrcode, {bool isSingleProcess = false}) async {
Future qrcodeOpenApplet(String qrcode,
{bool isSingleProcess = false, bool isSingTask = false}) async {
Map<String, Object> params = {
'qrcode': qrcode,
'isSingleProcess': isSingleProcess,
'isSingTask': isSingTask,
};
return await _channel.invokeMapMethod("qrcodeOpenApplet", params);
}
/// --
Future scanOpenApplet(String info, {bool isSingleProcess = false}) async {
Future scanOpenApplet(String info,
{bool isSingleProcess = false, bool isSingTask = false}) async {
Map<String, Object> params = {
'info': info,
'isSingleProcess': isSingleProcess,
'isSingTask': isSingTask,
};
return await _channel.invokeMapMethod("scanOpenApplet", params);
}

View File

@ -1,6 +1,6 @@
name: mop
description: A Finogeeks MiniProgram Flutter SDK.
version: '2.42.13'
version: '2.43.5'
homepage: https://github.com/finogeeks/mop-flutter-sdk
environment: