Merge branch 'master' of https://gitlab.finogeeks.club/finclipsdk/finclip-flutter-sdk into X5
Conflicts: android/build.gradle example/pubspec.lock lib/mop.dartmaster
commit
a66803c56e
|
@ -23,6 +23,7 @@ doc/api/
|
||||||
*.js_
|
*.js_
|
||||||
*.js.deps
|
*.js.deps
|
||||||
*.js.map
|
*.js.map
|
||||||
|
*.lock
|
||||||
|
|
||||||
*.iml
|
*.iml
|
||||||
.gradle
|
.gradle
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"java.configuration.updateBuildConfiguration": "interactive"
|
||||||
|
}
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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'
|
||||||
}
|
}
|
|
@ -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;
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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.so、libyuvutil.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}"
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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) {
|
||||||
|
// 返回true表示要自行处理更多视图;返回false表示使用默认的更多视图
|
||||||
|
|
||||||
|
// 在这里弹出自定义的更多视图
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
43
lib/mop.dart
43
lib/mop.dart
|
@ -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 {
|
||||||
/// 加载小程序过程中(小程序Service层还未加载成功,基础库还没有向SDK传递小程序配置信息),是否隐藏导航栏的关闭按钮
|
/// 加载小程序过程中(小程序Service层还未加载成功,基础库还没有向SDK传递小程序配置信息),是否隐藏导航栏的关闭按钮
|
||||||
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;
|
||||||
|
|
||||||
/// 胶囊里的更多按钮的宽度,高度与宽度相等
|
/// 胶囊里的更多按钮的宽度,高度与宽度相等。android默认值为32;ios默认值为20
|
||||||
double moreBtnWidth = 32;
|
double moreBtnWidth = Platform.isAndroid ? 32 : 20;
|
||||||
|
|
||||||
/// 胶囊里的更多按钮的左边距
|
/// 胶囊里的更多按钮的左边距。android默认值为6;ios默认值为12
|
||||||
double moreBtnLeftMargin = 6;
|
double moreBtnLeftMargin = Platform.isAndroid ? 6 : 12;
|
||||||
|
|
||||||
/// 胶囊里的浅色更多按钮的图片对象,如果不传,会使用默认图标
|
/// 胶囊里的浅色更多按钮的图片对象,如果不传,会使用默认图标
|
||||||
int? closeLightImage;
|
int? closeLightImage;
|
||||||
|
@ -458,11 +468,11 @@ class CapsuleConfig {
|
||||||
/// 胶囊里的深色更多按钮的图片对象,如果不传,会使用默认图标
|
/// 胶囊里的深色更多按钮的图片对象,如果不传,会使用默认图标
|
||||||
int? closeDarkImage;
|
int? closeDarkImage;
|
||||||
|
|
||||||
/// 胶囊里的关闭按钮的宽度,高度与宽度相等
|
/// 胶囊里的关闭按钮的宽度,高度与宽度相等。android默认值为32;ios默认值为20
|
||||||
double closeBtnWidth = 32;
|
double closeBtnWidth = Platform.isAndroid ? 32 : 20;
|
||||||
|
|
||||||
/// 胶囊里的关闭按钮的左边距
|
/// 胶囊里的关闭按钮的左边距。android默认值为6;ios默认值为12
|
||||||
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, // 所有版本强制关闭vconsole,且不可调api开启,多面板不展示打开、关闭调试菜单
|
BOOLStateForbidden, // 所有版本强制关闭vconsole,且不可调api开启,多面板不展示打开、关闭调试菜单
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum LanguageType {
|
||||||
|
Chinese, // 中文
|
||||||
|
English, // 英文
|
||||||
|
}
|
||||||
|
|
||||||
enum LogLevel {
|
enum LogLevel {
|
||||||
LEVEL_ERROR, // 设置为该等级,将会记录ERROR级别的日志
|
LEVEL_ERROR, // 设置为该等级,将会记录ERROR级别的日志
|
||||||
LEVEL_WARNING, // 设置为该等级,将会记录ERROR和WARNING级别的日志
|
LEVEL_WARNING, // 设置为该等级,将会记录ERROR和WARNING级别的日志
|
||||||
|
@ -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 = [];
|
||||||
|
|
31
pubspec.lock
31
pubspec.lock
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue