Conflicts:
	android/build.gradle
	example/pubspec.lock
	lib/mop.dart
master
wangyong 2023-04-08 02:00:50 +08:00
commit a66803c56e
29 changed files with 328 additions and 121 deletions

1
.gitignore vendored
View File

@ -23,6 +23,7 @@ doc/api/
*.js_ *.js_
*.js.deps *.js.deps
*.js.map *.js.map
*.lock
*.iml *.iml
.gradle .gradle

3
.vscode/settings.json vendored 100644
View File

@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/> <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/> <classpathentry kind="output" path="bin/default"/>
</classpath> </classpath>

View File

@ -1,11 +1,11 @@
arguments= arguments=--init-script /var/folders/tv/dbm7kt650fvdxrtf0k7xgxcm0000gn/T/d146c9752a26f79b52047fb6dc6ed385d064e120494f96f08ca63a317c41f94c.gradle --init-script /var/folders/tv/dbm7kt650fvdxrtf0k7xgxcm0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
auto.sync=false auto.sync=false
build.scans.enabled=false build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.0-rc-1)) connection.gradle.distribution=GRADLE_DISTRIBUTION(VERSION(7.4.2))
connection.project.dir= connection.project.dir=
eclipse.preferences.version=1 eclipse.preferences.version=1
gradle.user.home= gradle.user.home=
java.home=C\:/Program Files/Eclipse Foundation/jdk-11.0.12.7-hotspot java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
jvm.arguments= jvm.arguments=
offline.mode=false offline.mode=false
override.workspace.settings=true override.workspace.settings=true

View File

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

View File

@ -10,6 +10,7 @@ import android.util.Log;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.finogeeks.lib.applet.client.FinAppProcessClient;
import com.finogeeks.lib.applet.client.FinAppClient; import com.finogeeks.lib.applet.client.FinAppClient;
import com.finogeeks.lib.applet.client.FinAppTrace; import com.finogeeks.lib.applet.client.FinAppTrace;
import com.finogeeks.lib.applet.interfaces.FinCallback; import com.finogeeks.lib.applet.interfaces.FinCallback;

View File

@ -141,6 +141,9 @@ public class AppletModule extends BaseApi {
String appId = String.valueOf(param.get("appletId")); String appId = String.valueOf(param.get("appletId"));
Integer sequence = (Integer) param.get("sequence"); Integer sequence = (Integer) param.get("sequence");
Map<String, String> params = (Map) param.get("startParams"); Map<String, String> params = (Map) param.get("startParams");
if (params == null) {
params = new HashMap<>();
}
String apiServer = (String) param.get("apiServer"); String apiServer = (String) param.get("apiServer");
String offlineMiniprogramZipPath = (String) param.get("offlineMiniprogramZipPath"); String offlineMiniprogramZipPath = (String) param.get("offlineMiniprogramZipPath");
String offlineFrameworkZipPath = (String) param.get("offlineFrameworkZipPath"); String offlineFrameworkZipPath = (String) param.get("offlineFrameworkZipPath");

View File

@ -19,6 +19,7 @@ import com.google.gson.Gson;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Locale;
public class InitSDKModule extends BaseApi { public class InitSDKModule extends BaseApi {
@ -183,6 +184,12 @@ public class InitSDKModule extends BaseApi {
if (appletText != null) { if (appletText != null) {
configBuilder.setAppletText(appletText); configBuilder.setAppletText(appletText);
} }
Integer languageInteger = (Integer) configMap.get("language");
if (languageInteger == 1) {
configBuilder.setLocale(Locale.ENGLISH);
} else {
configBuilder.setLocale(Locale.SIMPLIFIED_CHINESE);
}
// uiConfig // uiConfig
FinAppConfig.UIConfig uiConfig = InitUtils.createUIConfigFromMap(uiConfigMap); FinAppConfig.UIConfig uiConfig = InitUtils.createUIConfigFromMap(uiConfigMap);

View File

@ -7,6 +7,23 @@ import java.util.Map;
public class InitUtils { public class InitUtils {
private static float covertNumToFloat(Object obj) {
if (obj instanceof Float) {
return ((Float) obj).floatValue();
} else if (float.class.isInstance(obj)) {
return (float) obj;
} else if (obj instanceof Double) {
return ((Double) obj).floatValue();
} else if (double.class.isInstance(obj)) {
return (float) obj;
} else if (obj instanceof Integer) {
return ((Integer) obj).floatValue();
} else if (int.class.isInstance(obj)) {
return (float) obj;
}
throw new IllegalArgumentException("Unsupported argument type " + obj.getClass().getName());
}
public static FinAppConfig.UIConfig createUIConfigFromMap(Map<Object, Object> map) { public static FinAppConfig.UIConfig createUIConfigFromMap(Map<Object, Object> map) {
if (map != null) { if (map != null) {
FinAppConfig.UIConfig uiConfig = new FinAppConfig.UIConfig(); FinAppConfig.UIConfig uiConfig = new FinAppConfig.UIConfig();
@ -28,11 +45,11 @@ public class InitUtils {
Map<Object, Object> capsuleConfigMap = (Map<Object, Object>) map.get("capsuleConfig"); Map<Object, Object> capsuleConfigMap = (Map<Object, Object>) map.get("capsuleConfig");
if (capsuleConfigMap != null) { if (capsuleConfigMap != null) {
FinAppConfig.UIConfig.CapsuleConfig capsuleConfig = new FinAppConfig.UIConfig.CapsuleConfig(); FinAppConfig.UIConfig.CapsuleConfig capsuleConfig = new FinAppConfig.UIConfig.CapsuleConfig();
capsuleConfig.capsuleWidth = (float) capsuleConfigMap.get("capsuleWidth"); capsuleConfig.capsuleWidth = covertNumToFloat(capsuleConfigMap.get("capsuleWidth"));
capsuleConfig.capsuleHeight = (float) capsuleConfigMap.get("capsuleHeight"); capsuleConfig.capsuleHeight = covertNumToFloat(capsuleConfigMap.get("capsuleHeight"));
capsuleConfig.capsuleRightMargin = (float) capsuleConfigMap.get("capsuleRightMargin"); capsuleConfig.capsuleRightMargin = covertNumToFloat(capsuleConfigMap.get("capsuleRightMargin"));
capsuleConfig.capsuleCornerRadius = (float) capsuleConfigMap.get("capsuleCornerRadius"); capsuleConfig.capsuleCornerRadius = covertNumToFloat(capsuleConfigMap.get("capsuleCornerRadius"));
capsuleConfig.capsuleBorderWidth = (float) capsuleConfigMap.get("capsuleBorderWidth"); capsuleConfig.capsuleBorderWidth = covertNumToFloat(capsuleConfigMap.get("capsuleBorderWidth"));
capsuleConfig.capsuleBgLightColor = (int) capsuleConfigMap.get("capsuleBgLightColor"); capsuleConfig.capsuleBgLightColor = (int) capsuleConfigMap.get("capsuleBgLightColor");
capsuleConfig.capsuleBgDarkColor = (int) capsuleConfigMap.get("capsuleBgDarkColor"); capsuleConfig.capsuleBgDarkColor = (int) capsuleConfigMap.get("capsuleBgDarkColor");
capsuleConfig.capsuleBorderLightColor = (int) capsuleConfigMap.get("capsuleBorderLightColor"); capsuleConfig.capsuleBorderLightColor = (int) capsuleConfigMap.get("capsuleBorderLightColor");
@ -47,8 +64,8 @@ public class InitUtils {
if (moreDarkImage != null) { if (moreDarkImage != null) {
capsuleConfig.moreDarkImage = moreDarkImage; capsuleConfig.moreDarkImage = moreDarkImage;
} }
capsuleConfig.moreBtnWidth = (float) capsuleConfigMap.get("moreBtnWidth"); capsuleConfig.moreBtnWidth = covertNumToFloat(capsuleConfigMap.get("moreBtnWidth"));
capsuleConfig.moreBtnLeftMargin = (float) capsuleConfigMap.get("moreBtnLeftMargin"); capsuleConfig.moreBtnLeftMargin = covertNumToFloat(capsuleConfigMap.get("moreBtnLeftMargin"));
Integer closeLightImage = (Integer) capsuleConfigMap.get("closeLightImage"); Integer closeLightImage = (Integer) capsuleConfigMap.get("closeLightImage");
if (closeLightImage != null) { if (closeLightImage != null) {
capsuleConfig.closeLightImage = closeLightImage; capsuleConfig.closeLightImage = closeLightImage;
@ -57,18 +74,18 @@ public class InitUtils {
if (closeDarkImage != null) { if (closeDarkImage != null) {
capsuleConfig.closeDarkImage = closeDarkImage; capsuleConfig.closeDarkImage = closeDarkImage;
} }
capsuleConfig.closeBtnWidth = (float) capsuleConfigMap.get("closeBtnWidth"); capsuleConfig.closeBtnWidth = covertNumToFloat(capsuleConfigMap.get("closeBtnWidth"));
capsuleConfig.closeBtnLeftMargin = (float) capsuleConfigMap.get("closeBtnLeftMargin"); capsuleConfig.closeBtnLeftMargin = covertNumToFloat(capsuleConfigMap.get("closeBtnLeftMargin"));
uiConfig.setCapsuleConfig(capsuleConfig); uiConfig.setCapsuleConfig(capsuleConfig);
} }
Map<Object, Object> navHomeConfigMap = (Map<Object, Object>) map.get("navHomeConfig"); Map<Object, Object> navHomeConfigMap = (Map<Object, Object>) map.get("navHomeConfig");
if (navHomeConfigMap != null) { if (navHomeConfigMap != null) {
FinAppConfig.UIConfig.NavHomeConfig navHomeConfig = new FinAppConfig.UIConfig.NavHomeConfig(); FinAppConfig.UIConfig.NavHomeConfig navHomeConfig = new FinAppConfig.UIConfig.NavHomeConfig();
navHomeConfig.width = (float) navHomeConfigMap.get("width"); navHomeConfig.width = covertNumToFloat(navHomeConfigMap.get("width"));
navHomeConfig.height = (float) navHomeConfigMap.get("height"); navHomeConfig.height = covertNumToFloat(navHomeConfigMap.get("height"));
navHomeConfig.leftMargin = (float) navHomeConfigMap.get("leftMargin"); navHomeConfig.leftMargin = covertNumToFloat(navHomeConfigMap.get("leftMargin"));
navHomeConfig.cornerRadius = (float) navHomeConfigMap.get("cornerRadius"); navHomeConfig.cornerRadius = covertNumToFloat(navHomeConfigMap.get("cornerRadius"));
navHomeConfig.borderWidth = (float) navHomeConfigMap.get("borderWidth"); navHomeConfig.borderWidth = covertNumToFloat(navHomeConfigMap.get("borderWidth"));
navHomeConfig.borderLightColor = (int) navHomeConfigMap.get("borderLightColor"); navHomeConfig.borderLightColor = (int) navHomeConfigMap.get("borderLightColor");
navHomeConfig.borderDarkColor = (int) navHomeConfigMap.get("borderDarkColor"); navHomeConfig.borderDarkColor = (int) navHomeConfigMap.get("borderDarkColor");
navHomeConfig.bgLightColor = (int) navHomeConfigMap.get("bgLightColor"); navHomeConfig.bgLightColor = (int) navHomeConfigMap.get("bgLightColor");
@ -78,19 +95,19 @@ public class InitUtils {
Map<Object, Object> authViewConfigMap = (Map<Object, Object>) map.get("authViewConfig"); Map<Object, Object> authViewConfigMap = (Map<Object, Object>) map.get("authViewConfig");
if (authViewConfigMap != null) { if (authViewConfigMap != null) {
FinAppConfig.UIConfig.AuthViewConfig authViewConfig = new FinAppConfig.UIConfig.AuthViewConfig(); FinAppConfig.UIConfig.AuthViewConfig authViewConfig = new FinAppConfig.UIConfig.AuthViewConfig();
authViewConfig.appletNameTextSize = (float) authViewConfigMap.get("appletNameTextSize"); authViewConfig.appletNameTextSize = covertNumToFloat(authViewConfigMap.get("appletNameTextSize"));
authViewConfig.appletNameLightColor = (int) authViewConfigMap.get("appletNameLightColor"); authViewConfig.appletNameLightColor = (int) authViewConfigMap.get("appletNameLightColor");
authViewConfig.appletNameDarkColor = (int) authViewConfigMap.get("appletNameDarkColor"); authViewConfig.appletNameDarkColor = (int) authViewConfigMap.get("appletNameDarkColor");
authViewConfig.authorizeTitleTextSize = (float) authViewConfigMap.get("authorizeTitleTextSize"); authViewConfig.authorizeTitleTextSize = covertNumToFloat(authViewConfigMap.get("authorizeTitleTextSize"));
authViewConfig.authorizeTitleLightColor = (int) authViewConfigMap.get("authorizeTitleLightColor"); authViewConfig.authorizeTitleLightColor = (int) authViewConfigMap.get("authorizeTitleLightColor");
authViewConfig.authorizeTitleDarkColor = (int) authViewConfigMap.get("authorizeTitleDarkColor"); authViewConfig.authorizeTitleDarkColor = (int) authViewConfigMap.get("authorizeTitleDarkColor");
authViewConfig.authorizeDescriptionTextSize = (float) authViewConfigMap.get("authorizeDescriptionTextSize"); authViewConfig.authorizeDescriptionTextSize = covertNumToFloat(authViewConfigMap.get("authorizeDescriptionTextSize"));
authViewConfig.authorizeDescriptionLightColor = (int) authViewConfigMap.get("authorizeDescriptionLightColor"); authViewConfig.authorizeDescriptionLightColor = (int) authViewConfigMap.get("authorizeDescriptionLightColor");
authViewConfig.authorizeDescriptionDarkColor = (int) authViewConfigMap.get("authorizeDescriptionDarkColor"); authViewConfig.authorizeDescriptionDarkColor = (int) authViewConfigMap.get("authorizeDescriptionDarkColor");
authViewConfig.agreementTitleTextSize = (float) authViewConfigMap.get("agreementTitleTextSize"); authViewConfig.agreementTitleTextSize = covertNumToFloat(authViewConfigMap.get("agreementTitleTextSize"));
authViewConfig.agreementTitleLightColor = (int) authViewConfigMap.get("agreementTitleLightColor"); authViewConfig.agreementTitleLightColor = (int) authViewConfigMap.get("agreementTitleLightColor");
authViewConfig.agreementTitleDarkColor = (int) authViewConfigMap.get("agreementTitleDarkColor"); authViewConfig.agreementTitleDarkColor = (int) authViewConfigMap.get("agreementTitleDarkColor");
authViewConfig.agreementDescriptionTextSize = (float) authViewConfigMap.get("agreementDescriptionTextSize"); authViewConfig.agreementDescriptionTextSize = covertNumToFloat(authViewConfigMap.get("agreementDescriptionTextSize"));
authViewConfig.agreementDescriptionLightColor = (int) authViewConfigMap.get("agreementDescriptionLightColor"); authViewConfig.agreementDescriptionLightColor = (int) authViewConfigMap.get("agreementDescriptionLightColor");
authViewConfig.agreementDescriptionDarkColor = (int) authViewConfigMap.get("agreementDescriptionDarkColor"); authViewConfig.agreementDescriptionDarkColor = (int) authViewConfigMap.get("agreementDescriptionDarkColor");
authViewConfig.linkLightColor = (int) authViewConfigMap.get("linkLightColor"); authViewConfig.linkLightColor = (int) authViewConfigMap.get("linkLightColor");

View File

@ -16,12 +16,12 @@
</natures> </natures>
<filteredResources> <filteredResources>
<filter> <filter>
<id>1633860434667</id> <id>1680241888118</id>
<name></name> <name></name>
<type>30</type> <type>30</type>
<matcher> <matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id> <id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher> </matcher>
</filter> </filter>
</filteredResources> </filteredResources>

View File

@ -1,11 +1,11 @@
arguments= arguments=--init-script /var/folders/tv/dbm7kt650fvdxrtf0k7xgxcm0000gn/T/d146c9752a26f79b52047fb6dc6ed385d064e120494f96f08ca63a317c41f94c.gradle --init-script /var/folders/tv/dbm7kt650fvdxrtf0k7xgxcm0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle
auto.sync=false auto.sync=false
build.scans.enabled=false build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir= connection.project.dir=
eclipse.preferences.version=1 eclipse.preferences.version=1
gradle.user.home= gradle.user.home=
java.home=C\:/Program Files/Eclipse Foundation/jdk-11.0.12.7-hotspot java.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home
jvm.arguments= jvm.arguments=
offline.mode=false offline.mode=false
override.workspace.settings=true override.workspace.settings=true

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<classpath> <classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/> <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/> <classpathentry kind="output" path="bin/default"/>
</classpath> </classpath>

View File

@ -22,12 +22,12 @@
</natures> </natures>
<filteredResources> <filteredResources>
<filter> <filter>
<id>1633860434672</id> <id>1680241888252</id>
<name></name> <name></name>
<type>30</type> <type>30</type>
<matcher> <matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id> <id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments> <arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher> </matcher>
</filter> </filter>
</filteredResources> </filteredResources>

View File

@ -25,8 +25,7 @@ apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android { android {
compileSdkVersion 30 compileSdkVersion 33
compileOptions { compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
@ -34,7 +33,7 @@ android {
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.finogeeks.finclip.demo" applicationId "com.finogeeks.finosprite"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 30 targetSdkVersion 30
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
@ -48,8 +47,30 @@ android {
signingConfig signingConfigs.debug signingConfig signingConfigs.debug
} }
} }
packagingOptions {
// libsdkcore.solibyuvutil.so
doNotStrip "*/x86/libsdkcore.so"
doNotStrip "*/x86_64/libsdkcore.so"
doNotStrip "*/armeabi/libsdkcore.so"
doNotStrip "*/armeabi-v7a/libsdkcore.so"
doNotStrip "*/arm64-v8a/libsdkcore.so"
doNotStrip "*/x86/libfin-yuvutil.so"
doNotStrip "*/x86_64/libfin-yuvutil.so"
doNotStrip "*/armeabi/libfin-yuvutil.so"
doNotStrip "*/armeabi-v7a/libfin-yuvutil.so"
doNotStrip "*/arm64-v8a/libfin-yuvutil.so"
exclude 'META-INF/beans.xml'
}
} }
flutter { flutter {
source '../..' source '../..'
} }
dependencies {
def sdk_version = "2.40.1"
compileOnly "com.finogeeks.lib:finapplet:${sdk_version}"
implementation "com.finogeeks.mop:plugins:${sdk_version}"
}

View File

@ -1,6 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.finogeeks.mop_example"> package="com.finogeeks.mop_example">
<application <application
android:name=".MainApplication"
android:label="mop_example" android:label="mop_example"
android:icon="@mipmap/ic_launcher"> android:icon="@mipmap/ic_launcher">
<activity <activity

View File

@ -0,0 +1,38 @@
package com.finogeeks.mop_example;
import android.app.Application;
import android.content.Context;
// import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import com.finogeeks.lib.applet.client.FinAppClient;
import com.finogeeks.lib.applet.client.FinAppProcessClient;
import com.finogeeks.lib.applet.sdk.api.IAppletProcessApiManager;
import com.finogeeks.lib.applet.sdk.api.IAppletProcessHandler;
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
initProcessHandler();
}
private void initProcessHandler() {
if (!FinAppClient.INSTANCE.isFinAppProcess(this)) {
return;
}
FinAppProcessClient.INSTANCE.getAppletProcessApiManager().setAppletProcessHandler(new IAppletProcessHandler(){
@Override
public boolean onNavigationBarMoreButtonClicked(@NonNull Context context, @NonNull String appId) {
// truefalse使
//
return false;
}
});
}
}

View File

@ -6,7 +6,7 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:4.1.0' classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
} }
} }

View File

@ -1,11 +1,11 @@
PODS: PODS:
- FinApplet (2.34.11) - FinApplet (2.40.1)
- FinAppletExt (2.34.11): - FinAppletExt (2.40.1):
- FinApplet (= 2.34.11) - FinApplet (= 2.40.1)
- Flutter (1.0.0) - Flutter (1.0.0)
- mop (0.1.1): - mop (0.1.1):
- FinApplet (= 2.34.11) - FinApplet (= 2.40.1)
- FinAppletExt (= 2.34.11) - FinAppletExt (= 2.40.1)
- Flutter - Flutter
DEPENDENCIES: DEPENDENCIES:
@ -24,11 +24,11 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/mop/ios" :path: ".symlinks/plugins/mop/ios"
SPEC CHECKSUMS: SPEC CHECKSUMS:
FinApplet: 975a76c8de4c9ddf64d6b4bfcd946ad6830f54f6 FinApplet: 053df5db21b766a8705a6fb809731ec19f75578e
FinAppletExt: 9489276a84f908b60a75a71d09b0b4397e070bee FinAppletExt: 45c9fece1524d9eafa25e6bcd0fe492060492e3a
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
mop: 9a49a0b917e4016aa897c76656fddb69ad69b118 mop: 8dffe3317decd528a199f7a8695d74174fded976
PODFILE CHECKSUM: 2317ba7584871ae8cd67fd0244fbd5e96fd06167 PODFILE CHECKSUM: 2317ba7584871ae8cd67fd0244fbd5e96fd06167
COCOAPODS: 1.11.2 COCOAPODS: 1.11.3

View File

@ -357,11 +357,13 @@
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = finclip_example;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.finogeeks.finclip.demo; MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = com.finogeeks.finosprite;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -484,11 +486,13 @@
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = finclip_example;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.finogeeks.finclip.demo; MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = com.finogeeks.finosprite;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -506,11 +510,13 @@
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = finclip_example;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
PRODUCT_BUNDLE_IDENTIFIER = com.finogeeks.finclip.demo; MARKETING_VERSION = 1.0.0;
PRODUCT_BUNDLE_IDENTIFIER = com.finogeeks.finosprite;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;

View File

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -41,7 +43,5 @@
</array> </array>
<key>UIViewControllerBasedStatusBarAppearance</key> <key>UIViewControllerBasedStatusBarAppearance</key>
<false/> <false/>
<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>
</dict> </dict>
</plist> </plist>

View File

@ -3,6 +3,7 @@
import 'dart:ffi'; import 'dart:ffi';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mop/api.dart';
import 'dart:async'; import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:mop/mop.dart'; import 'package:mop/mop.dart';
@ -23,50 +24,56 @@ class _MyAppState extends State<MyApp> {
// Platform messages are asynchronous, so we initialize in an async method. // Platform messages are asynchronous, so we initialize in an async method.
Future<void> init() async { Future<void> init() async {
UIConfig uiconfig = UIConfig();
//
//
FinStoreConfig storeConfigA = FinStoreConfig( FinStoreConfig storeConfigA = FinStoreConfig(
"2LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=", "22LyZEib0gLTQdU3MUauAfJ/xujwNfM6OvvEqQyH4igA",
"bdfd76cae24d4313", "703b9026be3d6bc5",
"https://api.finclip.com",
"https://api.finclip.com", "https://api.finclip.com",
cryptType: "SM",
); );
FinStoreConfig storeConfigB = FinStoreConfig( FinStoreConfig storeConfigB = FinStoreConfig(
"2LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=", "22LyZEib0gLTQdU3MUauAfJ/xujwNfM6OvvEqQyH4igA",
"bdfd76cae24d4313", "703b9026be3d6bc5",
"https://finchat-mop-b.finogeeks.club", "https://finchat-mop-b.finogeeks.club"
"https://finchat-mop-b.finogeeks.club",
); );
List<FinStoreConfig> storeConfigs = [storeConfigA]; List<FinStoreConfig> storeConfigs = [storeConfigA];
Config config = Config(storeConfigs);
config.language = LanguageType.English;
UIConfig uiconfig = UIConfig();
uiconfig.isAlwaysShowBackInDefaultNavigationBar = false; uiconfig.isAlwaysShowBackInDefaultNavigationBar = false;
uiconfig.isClearNavigationBarNavButtonBackground = false; uiconfig.isClearNavigationBarNavButtonBackground = false;
uiconfig.isHideFeedbackAndComplaints = true; uiconfig.isHideFeedbackAndComplaints = true;
uiconfig.isHideBackHome = true; uiconfig.isHideBackHome = true;
uiconfig.isHideForwardMenu = true; uiconfig.isHideForwardMenu = true;
uiconfig.hideTransitionCloseButton = true;
uiconfig.disableSlideCloseAppletGesture = true;
CapsuleConfig capsuleConfig = CapsuleConfig(); CapsuleConfig capsuleConfig = CapsuleConfig();
capsuleConfig.capsuleBgLightColor = 0x33ff00ee; // capsuleConfig.capsuleBgLightColor = 0x33ff00ee;
capsuleConfig.capsuleRightMargin = 25; capsuleConfig.capsuleCornerRadius = 16;
// capsuleConfig.capsuleRightMargin = 25;
uiconfig.capsuleConfig = capsuleConfig; uiconfig.capsuleConfig = capsuleConfig;
uiconfig.appletText = "applet"; uiconfig.appletText = "applet";
if (Platform.isIOS) { // if (Platform.isIOS) {
final res = await Mop.instance.initialize( // final res = await Mop.instance.initialize(
'22LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=', 'bdfd76cae24d4313', // '22LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=', 'bdfd76cae24d4313',
apiServer: 'https://api.finclip.com', // apiServer: 'https://api.finclip.com',
apiPrefix: '/api/v1/mop', // apiPrefix: '/api/v1/mop',
uiConfig: uiconfig, // uiConfig: uiconfig,
finStoreConfigs: storeConfigs); // finStoreConfigs: storeConfigs);
print(res); // print(res);
} else if (Platform.isAndroid) { // } else if (Platform.isAndroid) {
final res = await Mop.instance.initialize( // final res = await Mop.instance.initialize(
'22LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=', 'bdfd76cae24d4313', // '22LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=', 'bdfd76cae24d4313',
apiServer: 'https://api.finclip.com', apiPrefix: '/api/v1/mop'); // apiServer: 'https://api.finclip.com', apiPrefix: '/api/v1/mop');
print(res); // print(res);
} // }
final res = await Mop.instance.initSDK(config, uiConfig: uiconfig);
print(res);
Mop.instance.registerAppletHandler(MyAppletHandler());
if (!mounted) return; if (!mounted) return;
} }
@ -117,8 +124,10 @@ class _MyAppState extends State<MyApp> {
// physics: NeverScrollableScrollPhysics(), // physics: NeverScrollableScrollPhysics(),
children: [ children: [
_buildAppletItem(appletId, "打开小程序", () { _buildAppletItem(appletId, "打开小程序", () {
Mop.instance.openApplet(appletId, // Mop.instance.openApplet(appletId,
path: 'pages/index/index', query: ''); // path: 'pages/index/index', query: '');
RemoteAppletRequest request = RemoteAppletRequest(apiServer: 'https://api.finclip.com', appletId: appletId);
Mop.instance.startApplet(request);
}), }),
_buildAppletItem(appletId, "finishRunningApplet", () { _buildAppletItem(appletId, "finishRunningApplet", () {
Mop.instance.finishRunningApplet(appletId, true); Mop.instance.finishRunningApplet(appletId, true);
@ -148,7 +157,7 @@ class _MyAppState extends State<MyApp> {
body: Column( body: Column(
children: <Widget>[ children: <Widget>[
_buildAppletWidget("5facb3a52dcbff00017469bd", "画图小程序"), _buildAppletWidget("5facb3a52dcbff00017469bd", "画图小程序"),
_buildAppletWidget("5fa214a29a6a7900019b5cc1", "官方小程序"), _buildAppletWidget("5f72e3559a6a7900019b5baa", "官方小程序"),
_buildAppletWidget("5fa215459a6a7900019b5cc3", "我的对账单"), _buildAppletWidget("5fa215459a6a7900019b5cc3", "我的对账单"),
], ],
), ),
@ -156,3 +165,45 @@ class _MyAppState extends State<MyApp> {
); );
} }
} }
class MyAppletHandler extends AppletHandler {
@override
Future<void> appletDidOpen(String appId) async {
print("appletDidOpen appId:$appId");
}
@override
bool customCapsuleMoreButtonClick(String appId) {
return false;
}
@override
void forwardApplet(Map<String, dynamic> appletInfo) {
print("forwardApplet ---");
}
@override
Future<List<CustomMenu>> getCustomMenus(String appId) {
List<CustomMenu> customMenus = [];
return Future.value(customMenus);
}
@override
Future<void> getMobileNumber(Function(dynamic params) param0) {
// TODO: implement getMobileNumber
throw UnimplementedError();
}
@override
Future<Map<String, dynamic>> getUserInfo() {
// TODO: implement getUserInfo
throw UnimplementedError();
}
@override
Future<void> onCustomMenuClick(String appId, String path, String menuId, String appInfo) {
// TODO: implement onCustomMenuClick
throw UnimplementedError();
}
}

View File

@ -7,7 +7,7 @@ packages:
name: async name: async
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.9.0" version: "2.8.2"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
@ -21,14 +21,21 @@ packages:
name: characters name: characters
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.1" version: "1.2.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.1.0"
collection: collection:
dependency: transitive dependency: transitive
description: description:
@ -42,14 +49,14 @@ packages:
name: cupertino_icons name: cupertino_icons
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.4" version: "1.0.5"
fake_async: fake_async:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.1" version: "1.3.0"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -68,7 +75,7 @@ packages:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.0.5" version: "2.0.9"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@ -87,35 +94,35 @@ packages:
name: matcher name: matcher
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.12.12" version: "0.12.11"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.5" version: "0.1.4"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.8.0" version: "1.7.0"
mop: mop:
dependency: "direct main" dependency: "direct main"
description: description:
path: ".." path: ".."
relative: true relative: true
source: path source: path
version: "2.39.11" version: "2.40.1"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.8.2" version: "1.8.1"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
@ -127,7 +134,7 @@ packages:
name: source_span name: source_span
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.9.0" version: "1.8.2"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -148,21 +155,21 @@ packages:
name: string_scanner name: string_scanner
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.1.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.1" version: "1.2.0"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.4.12" version: "0.4.9"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@ -172,4 +179,4 @@ packages:
version: "2.1.2" version: "2.1.2"
sdks: sdks:
dart: ">=2.17.0-0 <3.0.0" dart: ">=2.17.0-0 <3.0.0"
flutter: ">=2.2.3" flutter: ">=3.0.0"

View File

@ -56,6 +56,21 @@
return userInfo; return userInfo;
} }
- (BOOL)appletInfo:(FATAppletInfo *)appletInfo didClickMoreBtnAtPath:(NSString *)path {
NSLog(@"appletInfo:didClickMoreBtnAtPath");
__block BOOL flag;
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
[channel invokeMethod:@"extensionApi:customCapsuleMoreButtonClick" arguments:@{@"appId": appletInfo.appId} result:^(id _Nullable result) {
CFRunLoopStop(CFRunLoopGetMain());
if ([result isKindOfClass:[NSNumber class]]) {
flag = [result boolValue];
}
}];
CFRunLoopRun();
return flag;
}
- (NSArray<id<FATAppletMenuProtocol>> *)customMenusInApplet:(FATAppletInfo *)appletInfo atPath:(NSString *)path { - (NSArray<id<FATAppletMenuProtocol>> *)customMenusInApplet:(FATAppletInfo *)appletInfo atPath:(NSString *)path {
NSLog(@"customMenusInApplet"); NSLog(@"customMenusInApplet");
__block NSArray *list; __block NSArray *list;

View File

@ -62,6 +62,12 @@
config.h5AjaxHookRequestKey = self.config[@"h5AjaxHookRequestKey"]; config.h5AjaxHookRequestKey = self.config[@"h5AjaxHookRequestKey"];
config.pageCountLimit = [self.config[@"pageCountLimit"] integerValue]; config.pageCountLimit = [self.config[@"pageCountLimit"] integerValue];
config.schemes = self.config[@"schemes"]; config.schemes = self.config[@"schemes"];
NSInteger languageInteger = [self.config[@"language"] integerValue];
if (languageInteger == 1) {
config.language = FATPreferredLanguageEnglish;
} else {
config.language = FATPreferredLanguageSimplifiedChinese;
}
NSError* error = nil; NSError* error = nil;

View File

@ -16,6 +16,7 @@
{ {
NSLog(@"MOP_registerAppletHandler"); NSLog(@"MOP_registerAppletHandler");
[FATClient sharedClient].delegate = [MOPAppletDelegate instance]; [FATClient sharedClient].delegate = [MOPAppletDelegate instance];
[FATClient sharedClient].shareItemDelegate = [MOPAppletDelegate instance];
} }
@end @end

View File

@ -28,6 +28,9 @@ abstract class AppletHandler {
/// ///
Future<Map<String, dynamic>> getUserInfo(); Future<Map<String, dynamic>> getUserInfo();
/// iOS
bool customCapsuleMoreButtonClick(String appId);
/// ///
Future<List<CustomMenu>> getCustomMenus(String appId); Future<List<CustomMenu>> getCustomMenus(String appId);

View File

@ -202,6 +202,9 @@ class Config {
/// ///
bool enablePreNewProcess = true; bool enablePreNewProcess = true;
/// SDK
LanguageType language = LanguageType.Chinese;
/// Android /// Android
/// 使tbs /// 使tbs
bool useLocalTbsCore = false; bool useLocalTbsCore = false;
@ -251,6 +254,7 @@ class Config {
"logMaxAliveSec": logMaxAliveSec, "logMaxAliveSec": logMaxAliveSec,
"logDir": logDir, "logDir": logDir,
"enablePreNewProcess": enablePreNewProcess, "enablePreNewProcess": enablePreNewProcess,
"language":language.index,
"useLocalTbsCore": useLocalTbsCore, "useLocalTbsCore": useLocalTbsCore,
"tbsCoreUrl": tbsCoreUrl, "tbsCoreUrl": tbsCoreUrl,
}; };
@ -349,7 +353,7 @@ class UIConfig {
/// ServiceSDK /// ServiceSDK
bool hideTransitionCloseButton = false; bool hideTransitionCloseButton = false;
/// NO /// false
/// ///
bool disableSlideCloseAppletGesture = false; bool disableSlideCloseAppletGesture = false;
@ -419,14 +423,20 @@ class CapsuleConfig {
/// 5 /// 5
double capsuleCornerRadius = 5; double capsuleCornerRadius = 5;
/// 0.8 /// 1
double capsuleBorderWidth = 1; double capsuleBorderWidth = 1;
// ///
// int capsuleBgLightColor = 0x80ffffff;
// ///
// int capsuleBgDarkColor = 0x33000000;
/// ///
int capsuleBgLightColor = 0x33000000; int capsuleBgLightColor = Platform.isAndroid ? 0x33000000 : 0x80ffffff;
/// ///
int capsuleBgDarkColor = 0x80ffffff; int capsuleBgDarkColor = Platform.isAndroid ? 0x80ffffff : 0x33000000;
/// ///
int capsuleBorderLightColor = 0x80ffffff; int capsuleBorderLightColor = 0x80ffffff;
@ -446,11 +456,11 @@ class CapsuleConfig {
/// 使 /// 使
int? moreDarkImage; int? moreDarkImage;
/// /// android32ios20
double moreBtnWidth = 32; double moreBtnWidth = Platform.isAndroid ? 32 : 20;
/// /// android6ios12
double moreBtnLeftMargin = 6; double moreBtnLeftMargin = Platform.isAndroid ? 6 : 12;
/// 使 /// 使
int? closeLightImage; int? closeLightImage;
@ -458,11 +468,11 @@ class CapsuleConfig {
/// 使 /// 使
int? closeDarkImage; int? closeDarkImage;
/// /// android32ios20
double closeBtnWidth = 32; double closeBtnWidth = Platform.isAndroid ? 32 : 20;
/// /// android6ios12
double closeBtnLeftMargin = 6; double closeBtnLeftMargin = Platform.isAndroid ? 6 : 12;
Map<String, dynamic> toMap() { Map<String, dynamic> toMap() {
return { return {
@ -772,6 +782,7 @@ class RemoteAppletRequest {
String appletId; String appletId;
// //
// key 'path' 'query'
Map<String, String>? startParams; Map<String, String>? startParams;
// //
@ -867,6 +878,11 @@ enum BOOLState {
BOOLStateForbidden, // vconsoleapi BOOLStateForbidden, // vconsoleapi
} }
enum LanguageType {
Chinese, //
English, //
}
enum LogLevel { enum LogLevel {
LEVEL_ERROR, // ERROR LEVEL_ERROR, // ERROR
LEVEL_WARNING, // ERRORWARNING LEVEL_WARNING, // ERRORWARNING
@ -1128,6 +1144,9 @@ class Mop {
_appletHandlerApis["getUserInfo"] = (params) { _appletHandlerApis["getUserInfo"] = (params) {
return handler.getUserInfo(); return handler.getUserInfo();
}; };
_appletHandlerApis["customCapsuleMoreButtonClick"] = (params) async {
return handler.customCapsuleMoreButtonClick(params["appId"]);
};
_appletHandlerApis["getCustomMenus"] = (params) async { _appletHandlerApis["getCustomMenus"] = (params) async {
final res = await handler.getCustomMenus(params["appId"]); final res = await handler.getCustomMenus(params["appId"]);
List<Map<String, dynamic>> list = []; List<Map<String, dynamic>> list = [];

View File

@ -7,7 +7,7 @@ packages:
name: async name: async
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.9.0" version: "2.8.2"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
@ -21,14 +21,21 @@ packages:
name: characters name: characters
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.1" version: "1.2.0"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.3.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.1.0"
collection: collection:
dependency: transitive dependency: transitive
description: description:
@ -42,7 +49,7 @@ packages:
name: fake_async name: fake_async
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.1" version: "1.3.0"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -80,28 +87,28 @@ packages:
name: matcher name: matcher
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.12.12" version: "0.12.11"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.5" version: "0.1.4"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.8.0" version: "1.7.0"
path: path:
dependency: transitive dependency: transitive
description: description:
name: path name: path
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.8.2" version: "1.8.1"
sky_engine: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
@ -113,7 +120,7 @@ packages:
name: source_span name: source_span
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.9.0" version: "1.8.2"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -134,21 +141,21 @@ packages:
name: string_scanner name: string_scanner
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.1.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.1" version: "1.2.0"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.4.12" version: "0.4.9"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:

View File

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