Compare commits
52 Commits
master
...
phiz_2.42.
Author | SHA1 | Date |
---|---|---|
Stewen | 5f907e9b4f | |
Stewen | 8274fe3aaf | |
Stewen | b09e60067c | |
Stewen | 2aa8cf9b15 | |
Sean | 1b566ef884 | |
Stewen | 8574fc53c0 | |
Stewen | cedb23eec5 | |
Sean | 31f68432f9 | |
Sean | 08a5a23fde | |
Sean | 4999057d25 | |
Stewen | 5b29167042 | |
Stewen | b7b59390c9 | |
Stewen | 275ca3d4a1 | |
Stewen | efcabfe7c8 | |
Stewen | c291d64199 | |
Stewen | ebc5edcbf5 | |
Stewen | 892035a0c8 | |
Stewen | c9c7f00cb4 | |
Stewen | 5606f294e5 | |
Stewen | 52e29a405e | |
Stewen | ac757dbfb5 | |
Stewen | 2da5b8ead3 | |
Stewen | 7a95d27791 | |
Stewen | 685ff6ff1b | |
Stewen | 8e85abcb15 | |
Stewen | b3c70cd5f2 | |
Stewen | a5de8826c8 | |
Stewen | 9c4c772c70 | |
Stewen | fa41022f41 | |
Stewen | 03eedd4991 | |
Stewen | 70f910a76c | |
Stewen | 40e6eeda59 | |
Stewen | 99d074d023 | |
Stewen | c030e31a5a | |
Stewen | 0ac5a988dc | |
stewen | 98168c167e | |
stewen | f2077784db | |
stewen | 2ed4c891c5 | |
stewen | f9ee987c5a | |
stewen | 2b3bd6a226 | |
stewen | 957f14dde5 | |
stewen | 6749f2fc82 | |
stewen | a6bd02e789 | |
stewen | 366f8ab9ac | |
stewen | 58a8e5b804 | |
stewen | 9951bebc56 | |
stewen | 8ef8d78b2a | |
jayce | b800cb3786 | |
jayce | f097d86cd1 | |
jayce | 195b2d11a9 | |
simpleman1984@126.com | 4df164b35f | |
simpleman1984@126.com | 4cfdbafcbf |
|
@ -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.11'
|
implementation 'com.finogeeks.lib:finapplet:2.42.7'
|
||||||
implementation 'com.finogeeks.mop:plugins:2.41.11'
|
implementation 'com.finogeeks.mop:plugins:2.42.7'
|
||||||
}
|
}
|
|
@ -133,6 +133,7 @@ public class InitSDKModule extends BaseApi {
|
||||||
configBuilder.setSchemes(schemes);
|
configBuilder.setSchemes(schemes);
|
||||||
}
|
}
|
||||||
configBuilder.setDebugMode((Boolean) configMap.get("debug"));
|
configBuilder.setDebugMode((Boolean) configMap.get("debug"));
|
||||||
|
configBuilder.setEnableLog((Boolean) configMap.get("debug"));
|
||||||
Integer maxRunningApplet = (Integer) configMap.get("maxRunningApplet");
|
Integer maxRunningApplet = (Integer) configMap.get("maxRunningApplet");
|
||||||
if (maxRunningApplet != null) {
|
if (maxRunningApplet != null) {
|
||||||
configBuilder.setMaxRunningApplet(maxRunningApplet);
|
configBuilder.setMaxRunningApplet(maxRunningApplet);
|
||||||
|
@ -194,11 +195,23 @@ 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) {
|
Object localeLanguage = configMap.get("localeLanguage");
|
||||||
configBuilder.setLocale(Locale.ENGLISH);
|
if (localeLanguage != null) {
|
||||||
|
String language = (String) localeLanguage;
|
||||||
|
if (language.contains("_")) {
|
||||||
|
String[] locales = language.split("_");
|
||||||
|
configBuilder.setLocale(new Locale(locales[0], locales[1]));
|
||||||
|
} else {
|
||||||
|
configBuilder.setLocale(new Locale(language));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
configBuilder.setLocale(Locale.SIMPLIFIED_CHINESE);
|
Integer languageInteger = (Integer) configMap.get("language");
|
||||||
|
if (languageInteger == 1) {
|
||||||
|
configBuilder.setLocale(Locale.ENGLISH);
|
||||||
|
} else {
|
||||||
|
configBuilder.setLocale(Locale.SIMPLIFIED_CHINESE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// uiConfig
|
// uiConfig
|
||||||
|
|
|
@ -2,7 +2,7 @@ package com.finogeeks.mop.api.mop;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.finogeeks.finochat.sdkcore.client.FinoChatSDKCoreClient;
|
import com.finogeeks.finclip.sdkcore.manager.FinClipSDKCoreManager;
|
||||||
import com.finogeeks.lib.applet.client.FinAppClient;
|
import com.finogeeks.lib.applet.client.FinAppClient;
|
||||||
import com.finogeeks.lib.applet.db.entity.FinApplet;
|
import com.finogeeks.lib.applet.db.entity.FinApplet;
|
||||||
import com.finogeeks.mop.api.BaseApi;
|
import com.finogeeks.mop.api.BaseApi;
|
||||||
|
@ -25,7 +25,7 @@ public class SmSignModule extends BaseApi {
|
||||||
@Override
|
@Override
|
||||||
public void invoke(String event, Map param, ICallback callback) {
|
public void invoke(String event, Map param, ICallback callback) {
|
||||||
String text = (String) param.get("plainText");
|
String text = (String) param.get("plainText");
|
||||||
String result = FinoChatSDKCoreClient.getInstance().finoLicenseService().messageDigest(text);
|
String result = new FinClipSDKCoreManager.Builder().build().messageDigestBySM(text);
|
||||||
Map<String, Object> res = new HashMap<>();
|
Map<String, Object> res = new HashMap<>();
|
||||||
res.put("data", result);
|
res.put("data", result);
|
||||||
callback.onSuccess(res);
|
callback.onSuccess(res);
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
export LANG=en_US.UTF-8
|
||||||
|
export FASTLANE_DISABLE_COLORS=1
|
||||||
|
|
||||||
|
|
||||||
|
export version="$1"
|
||||||
|
export iosVersion="$2"
|
||||||
|
export androidVersion="$3"
|
||||||
|
|
||||||
|
#version=`git describe --abbrev=0 --tags | tr -d '\\n' | tr -d '\\t'`
|
||||||
|
|
||||||
|
echo "当前版本号:${version}"
|
||||||
|
echo "依赖的iOS:${iosVersion}"
|
||||||
|
echo "依赖的Android:${androidVersion}"
|
||||||
|
|
||||||
|
#git reset --hard
|
||||||
|
#git checkout ${version}
|
||||||
|
|
||||||
|
# 更新 pubspec.yaml
|
||||||
|
cp -r pubspec.tpl.yaml pubspec.yaml
|
||||||
|
sed -i "" "s/__mop_flutter_sdk_version__/${version}/g" pubspec.yaml
|
||||||
|
|
||||||
|
# 更新iOS podspec
|
||||||
|
if [ -n "$iosVersion" ]
|
||||||
|
then
|
||||||
|
echo "更新mop.podspec====>"
|
||||||
|
cp -r ios/mop.podspec.tpl ios/mop.podspec
|
||||||
|
sed -i "" "s/__finapplet_version__/${iosVersion}/g" ios/mop.podspec
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 更新android gradle
|
||||||
|
if [ -n "$androidVersion" ]
|
||||||
|
then
|
||||||
|
echo "更新build.gradle====>"
|
||||||
|
cp -r android/build.gradle.tpl android/build.gradle
|
||||||
|
sed -i "" "s/__finapplet_version__/${androidVersion}/g" android/build.gradle
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat pubspec.yaml
|
||||||
|
|
||||||
|
git remote add ssh-origin ssh://git@gitlab.finogeeks.club:2233/finclipsdk/finclip-flutter-sdk.git
|
||||||
|
|
||||||
|
git add .
|
||||||
|
git commit -m "release: version:$version"
|
||||||
|
git tag -d ${version}
|
||||||
|
git push ssh-origin --delete tag ${version}
|
||||||
|
git tag -a ${version} -m 'FinClip-Flutter-SDK发版'
|
||||||
|
git push ssh-origin HEAD:refs/heads/master --tags -f
|
||||||
|
|
||||||
|
|
||||||
|
#export http_proxy=http://127.0.0.1:1087
|
||||||
|
#export https_proxy=http://127.0.0.1:1087
|
||||||
|
|
||||||
|
|
||||||
|
flutter packages pub publish --dry-run --server=https://pub.dartlang.org
|
||||||
|
|
||||||
|
flutter packages pub publish --server=https://pub.dartlang.org --force
|
||||||
|
|
||||||
|
#unset http_proxy
|
||||||
|
#unset https_proxy
|
||||||
|
|
||||||
|
|
||||||
|
git remote add github ssh://git@github.com/finogeeks/mop-flutter-sdk.git
|
||||||
|
|
||||||
|
#git push github HEAD:refs/heads/master --tags
|
||||||
|
|
||||||
|
git push github HEAD:refs/heads/master
|
|
@ -83,9 +83,26 @@ class _MyAppState extends State<MyApp> {
|
||||||
|
|
||||||
Mop.instance.registerExtensionApi('getUserProfile', getUserProfile);
|
Mop.instance.registerExtensionApi('getUserProfile', getUserProfile);
|
||||||
|
|
||||||
|
Mop.instance.registerExtensionApi('pushNativePage', pushNativePage);
|
||||||
|
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<Map<String, dynamic>> pushNativePage(dynamic params) async {
|
||||||
|
print(params);
|
||||||
|
Map<String, dynamic> result = {
|
||||||
|
"userInfo":{
|
||||||
|
"nickName" : "haley",
|
||||||
|
"avatarUrl" : "https://www.finclip.com",
|
||||||
|
"gender" : 1,
|
||||||
|
"country" : "China",
|
||||||
|
"province" : "Guangdong",
|
||||||
|
"city" : "shenzhen",
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return Future.value(result);
|
||||||
|
}
|
||||||
|
|
||||||
Future<Map<String, dynamic>> getUserProfile(dynamic params) async {
|
Future<Map<String, dynamic>> getUserProfile(dynamic params) async {
|
||||||
Map<String, dynamic> result = {
|
Map<String, dynamic> result = {
|
||||||
"userInfo":{
|
"userInfo":{
|
||||||
|
@ -262,6 +279,12 @@ class MyAppletHandler extends AppletHandler {
|
||||||
return Future.value(result);
|
return Future.value(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @override
|
||||||
|
// Future<Map<String, dynamic>> getUserInfo() {
|
||||||
|
// // TODO: implement getUserInfo
|
||||||
|
// throw UnimplementedError();
|
||||||
|
// }
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> onCustomMenuClick(String appId, String path, String menuId, String appInfo) {
|
Future<void> onCustomMenuClick(String appId, String path, String menuId, String appInfo) {
|
||||||
// TODO: implement onCustomMenuClick
|
// TODO: implement onCustomMenuClick
|
||||||
|
|
|
@ -47,41 +47,59 @@
|
||||||
- (NSDictionary *)getUserInfoWithAppletInfo:(FATAppletInfo *)appletInfo {
|
- (NSDictionary *)getUserInfoWithAppletInfo:(FATAppletInfo *)appletInfo {
|
||||||
NSLog(@"getUserInfoWithAppletInfo");
|
NSLog(@"getUserInfoWithAppletInfo");
|
||||||
__block NSDictionary *userInfo;
|
__block NSDictionary *userInfo;
|
||||||
|
CFRunLoopRef runLoop = CFRunLoopGetCurrent();
|
||||||
|
|
||||||
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
||||||
[channel invokeMethod:@"extensionApi:getUserInfo" arguments:nil result:^(id _Nullable result) {
|
[channel invokeMethod:@"extensionApi:getUserInfo" arguments:nil result:^(id _Nullable result) {
|
||||||
CFRunLoopStop(CFRunLoopGetMain());
|
CFRunLoopStop(runLoop);
|
||||||
userInfo = result;
|
userInfo = result;
|
||||||
}];
|
}];
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
CFRunLoopStop(runLoop);
|
||||||
|
});
|
||||||
CFRunLoopRun();
|
CFRunLoopRun();
|
||||||
return userInfo;
|
return userInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)appletInfo:(FATAppletInfo *)appletInfo didClickMoreBtnAtPath:(NSString *)path {
|
- (BOOL)appletInfo:(FATAppletInfo *)appletInfo didClickMoreBtnAtPath:(NSString *)path {
|
||||||
NSLog(@"appletInfo:didClickMoreBtnAtPath");
|
|
||||||
__block BOOL flag;
|
__block BOOL flag;
|
||||||
|
CFRunLoopRef runLoop = CFRunLoopGetCurrent();
|
||||||
|
|
||||||
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
||||||
|
NSLog(@"appletInfo:didClickMoreBtnAtPath,appId=%@,path=%@,channel=%@",appletInfo.appId,path,channel);
|
||||||
[channel invokeMethod:@"extensionApi:customCapsuleMoreButtonClick" arguments:@{@"appId": appletInfo.appId} result:^(id _Nullable result) {
|
[channel invokeMethod:@"extensionApi:customCapsuleMoreButtonClick" arguments:@{@"appId": appletInfo.appId} result:^(id _Nullable result) {
|
||||||
CFRunLoopStop(CFRunLoopGetMain());
|
CFRunLoopStop(runLoop);
|
||||||
|
|
||||||
if ([result isKindOfClass:[NSNumber class]]) {
|
if ([result isKindOfClass:[NSNumber class]]) {
|
||||||
flag = [result boolValue];
|
flag = [result boolValue];
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
CFRunLoopRun();
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
CFRunLoopStop(runLoop);
|
||||||
|
});
|
||||||
|
|
||||||
|
CFRunLoopRun();
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSArray<id<FATAppletMenuProtocol>> *)customMenusInApplet:(FATAppletInfo *)appletInfo atPath:(NSString *)path {
|
- (NSArray<id<FATAppletMenuProtocol>> *)customMenusInApplet:(FATAppletInfo *)appletInfo atPath:(NSString *)path {
|
||||||
NSLog(@"customMenusInApplet");
|
NSLog(@"customMenusInApplet:%@,appletInfo=%@",path,appletInfo);
|
||||||
__block NSArray *list;
|
__block NSArray *list;
|
||||||
|
CFRunLoopRef runLoop = CFRunLoopGetCurrent();
|
||||||
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
||||||
[channel invokeMethod:@"extensionApi:getCustomMenus" arguments:@{@"appId": appletInfo.appId} result:^(id _Nullable result) {
|
[channel invokeMethod:@"extensionApi:getCustomMenus" arguments:@{@"appId": appletInfo.appId} result:^(id _Nullable result) {
|
||||||
CFRunLoopStop(CFRunLoopGetMain());
|
CFRunLoopStop(runLoop);
|
||||||
if ([result isKindOfClass:[NSArray class]]) {
|
if ([result isKindOfClass:[NSArray class]]) {
|
||||||
list = result;
|
list = result;
|
||||||
|
NSLog(@"customMenusInApplet2222:list=%@",list);
|
||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||||||
|
CFRunLoopStop(runLoop);
|
||||||
|
});
|
||||||
|
|
||||||
CFRunLoopRun();
|
CFRunLoopRun();
|
||||||
|
NSLog(@"customMenusInApplet:%@,list=%@",path,list);
|
||||||
|
|
||||||
NSMutableArray *models = [NSMutableArray array];
|
NSMutableArray *models = [NSMutableArray array];
|
||||||
for (NSDictionary<NSString *, NSString *> *data in list) {
|
for (NSDictionary<NSString *, NSString *> *data in list) {
|
||||||
|
@ -112,7 +130,9 @@
|
||||||
return models;
|
return models;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
- (void)clickCustomItemMenuWithInfo:(NSDictionary *)contentInfo inApplet:(FATAppletInfo *)appletInfo completion:(void (^)(FATExtensionCode code, NSDictionary *result))completion {
|
- (void)clickCustomItemMenuWithInfo:(NSDictionary *)contentInfo inApplet:(FATAppletInfo *)appletInfo completion:(void (^)(FATExtensionCode code, NSDictionary *result))completion {
|
||||||
|
NSLog(@"HJH1,clickCustomItemMenuWithInfo");
|
||||||
NSError *parseError = nil;
|
NSError *parseError = nil;
|
||||||
NSMutableDictionary *shareDic = [[NSMutableDictionary alloc] initWithDictionary:[self dictionaryRepresentation:appletInfo]];
|
NSMutableDictionary *shareDic = [[NSMutableDictionary alloc] initWithDictionary:[self dictionaryRepresentation:appletInfo]];
|
||||||
[shareDic setValue:@{@"desc" : shareDic[@"originalInfo"][@"customData"][@"detailDescription"]} forKey:@"params"];
|
[shareDic setValue:@{@"desc" : shareDic[@"originalInfo"][@"customData"][@"detailDescription"]} forKey:@"params"];
|
||||||
|
@ -120,10 +140,10 @@
|
||||||
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:shareDic options:NSJSONWritingPrettyPrinted error:&parseError];
|
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:shareDic options:NSJSONWritingPrettyPrinted error:&parseError];
|
||||||
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
||||||
NSDictionary *arguments = @{
|
NSDictionary *arguments = @{
|
||||||
@"appId": contentInfo[@"appId"],
|
@"appId": contentInfo[@"appId"],
|
||||||
@"path": contentInfo[@"path"],
|
@"path": contentInfo[@"path"],
|
||||||
@"menuId": contentInfo[@"menuId"],
|
@"menuId": contentInfo[@"menuId"],
|
||||||
@"appInfo": jsonString
|
@"appInfo": jsonString
|
||||||
};
|
};
|
||||||
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
||||||
[channel invokeMethod:@"extensionApi:onCustomMenuClick" arguments:arguments result:^(id _Nullable result) {
|
[channel invokeMethod:@"extensionApi:onCustomMenuClick" arguments:arguments result:^(id _Nullable result) {
|
||||||
|
@ -133,6 +153,7 @@
|
||||||
if ([@"Desktop" isEqualToString:contentInfo[@"menuId"]]) {
|
if ([@"Desktop" isEqualToString:contentInfo[@"menuId"]]) {
|
||||||
[self addToDesktopItemClick:appletInfo path:contentInfo[@"path"]];
|
[self addToDesktopItemClick:appletInfo path:contentInfo[@"path"]];
|
||||||
}
|
}
|
||||||
|
NSLog(@"HJH2,clickCustomItemMenuWithInfo");
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSDictionary *)dictionaryRepresentation:(FATAppletInfo *)object {
|
- (NSDictionary *)dictionaryRepresentation:(FATAppletInfo *)object {
|
||||||
|
|
|
@ -23,6 +23,22 @@
|
||||||
return _instance;
|
return _instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)getUserInfoWithAppletInfo:(FATAppletInfo *)appletInfo bindGetUserInfo:(void (^)(NSDictionary *result))bindGetUserInfo
|
||||||
|
{
|
||||||
|
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
||||||
|
NSLog(@"getUserInfoWithAppletInfo:%@", channel);
|
||||||
|
[channel invokeMethod:@"extensionApi:getUserInfo" arguments:nil result:^(id _Nullable result) {
|
||||||
|
NSDictionary *userInfo;
|
||||||
|
if (![result isKindOfClass:[NSDictionary class]]) {
|
||||||
|
userInfo = @{@"errMsg":@"getUserInfo:fail return value format invalid"};
|
||||||
|
} else {
|
||||||
|
userInfo = result;
|
||||||
|
}
|
||||||
|
bindGetUserInfo(userInfo);
|
||||||
|
}];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)getUserProfileWithAppletInfo:(FATAppletInfo *)appletInfo
|
- (BOOL)getUserProfileWithAppletInfo:(FATAppletInfo *)appletInfo
|
||||||
bindGetUserProfile:(void (^)(NSDictionary *result))bindGetUserProfile
|
bindGetUserProfile:(void (^)(NSDictionary *result))bindGetUserProfile
|
||||||
{
|
{
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
} else {
|
} else {
|
||||||
config.language = FATPreferredLanguageSimplifiedChinese;
|
config.language = FATPreferredLanguageSimplifiedChinese;
|
||||||
}
|
}
|
||||||
|
config.customLanguagePath = self.config[@"customLanguagePath"];
|
||||||
|
|
||||||
NSError* error = nil;
|
NSError* error = nil;
|
||||||
FATUIConfig *uiconfig = [[FATUIConfig alloc]init];
|
FATUIConfig *uiconfig = [[FATUIConfig alloc]init];
|
||||||
|
|
|
@ -15,15 +15,13 @@
|
||||||
{
|
{
|
||||||
NSLog(@"MOP_registerExtensionApi");
|
NSLog(@"MOP_registerExtensionApi");
|
||||||
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
FlutterMethodChannel *channel = [[MopPlugin instance] methodChannel];
|
||||||
[[FATClient sharedClient] registerExtensionApi:self.name handle:^(id param, FATExtensionApiCallback callback) {
|
NSString *name = self.name;
|
||||||
NSLog(@"invoke ExtensionApi:");
|
[[FATClient sharedClient] registerExtensionApi:name handler:^(FATAppletInfo *appletInfo, id param, FATExtensionApiCallback callback) {
|
||||||
NSLog(@"%@",self.name);
|
NSLog(@"channel:%@---invoke ExtensionApi:%@, param:%@", channel, name, param);
|
||||||
NSLog(@"%@",param);
|
NSString *api = [@"extensionApi:" stringByAppendingString:name];
|
||||||
NSString* api = [@"extensionApi:" stringByAppendingString:self.name];
|
|
||||||
[channel invokeMethod:api arguments:param result:^(id _Nullable result) {
|
[channel invokeMethod:api arguments:param result:^(id _Nullable result) {
|
||||||
NSLog(@"extensionApi reslut:%@",result);
|
NSLog(@"extensionApi [%@] reslut:%@", name, result);
|
||||||
// 先判断是否flutter发生错误
|
// 先判断是否flutter发生错误
|
||||||
// BOOL isFlutterError = [result isKindOfClass:[FlutterError class]] || result == FlutterMethodNotImplemented;
|
|
||||||
BOOL isValid = [result isKindOfClass:[NSDictionary class]];
|
BOOL isValid = [result isKindOfClass:[NSDictionary class]];
|
||||||
if (!isValid) {
|
if (!isValid) {
|
||||||
NSLog(@"extensionApi reslut is not NSDictionary");
|
NSLog(@"extensionApi reslut is not NSDictionary");
|
||||||
|
@ -34,7 +32,7 @@
|
||||||
BOOL hasError = [[result allKeys] containsObject:@"errMsg"];
|
BOOL hasError = [[result allKeys] containsObject:@"errMsg"];
|
||||||
if (hasError) {
|
if (hasError) {
|
||||||
NSString *errMsg = result[@"errMsg"];
|
NSString *errMsg = result[@"errMsg"];
|
||||||
NSString *errPrefix = [NSString stringWithFormat:@"%@:fail", self.name];
|
NSString *errPrefix = [NSString stringWithFormat:@"%@:fail", name];
|
||||||
BOOL isFail = [errMsg hasPrefix:errPrefix];
|
BOOL isFail = [errMsg hasPrefix:errPrefix];
|
||||||
if (isFail) {
|
if (isFail) {
|
||||||
NSLog(@"extensionApi reslut:fail");
|
NSLog(@"extensionApi reslut:fail");
|
||||||
|
|
|
@ -64,7 +64,12 @@ static MopPlugin *_instance;
|
||||||
binaryMessenger:[registrar messenger]];
|
binaryMessenger:[registrar messenger]];
|
||||||
[registrar addMethodCallDelegate:_instance channel:appletShareChannel];
|
[registrar addMethodCallDelegate:_instance channel:appletShareChannel];
|
||||||
_instance.shareAppletMethodChannel = appletShareChannel;
|
_instance.shareAppletMethodChannel = appletShareChannel;
|
||||||
|
//phiz
|
||||||
|
FlutterMethodChannel* phizChannel = [FlutterMethodChannel
|
||||||
|
methodChannelWithName:@"Phiz"
|
||||||
|
binaryMessenger:[registrar messenger]];
|
||||||
|
[registrar addMethodCallDelegate:_instance channel:phizChannel];
|
||||||
|
_instance.phizMethodChannel = phizChannel;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (instancetype)instance{
|
+ (instancetype)instance{
|
||||||
|
|
|
@ -17,7 +17,7 @@ A finclip miniprogram flutter sdk.
|
||||||
s.dependency 'Flutter'
|
s.dependency 'Flutter'
|
||||||
s.ios.deployment_target = '9.0'
|
s.ios.deployment_target = '9.0'
|
||||||
|
|
||||||
s.dependency 'FinApplet' , '2.41.11'
|
s.dependency 'FinApplet' , '2.42.7'
|
||||||
s.dependency 'FinAppletExt' , '2.41.11'
|
s.dependency 'FinAppletExt' , '2.42.7'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
15
lib/mop.dart
15
lib/mop.dart
|
@ -210,6 +210,19 @@ class Config {
|
||||||
/// SDK的语言类型,默认为中文
|
/// SDK的语言类型,默认为中文
|
||||||
LanguageType language = LanguageType.Chinese;
|
LanguageType language = LanguageType.Chinese;
|
||||||
|
|
||||||
|
/// iOS属性
|
||||||
|
/// 自定义SDK的语言,优先级高于内置的 language 属性。
|
||||||
|
/// 示例:
|
||||||
|
/// 如果是放在 mainBundle 下,则设置相对路径:@"abc.lproj"
|
||||||
|
/// 如果是放在自定于 Bundle 下,则设置相对路径:@"bundleName.bundle/abc.lproj"
|
||||||
|
String? customLanguagePath;
|
||||||
|
|
||||||
|
/// Android属性
|
||||||
|
/// 自定义SDK的语言,优先级高于内置的 language 属性。
|
||||||
|
/// 语言列表可以参考:https://uutool.cn/info-i18n/ 或者Java类 【java.util.Locale】
|
||||||
|
/// 示例:简体中文:zh_CN,繁体中文:zh_TW,英文:en
|
||||||
|
String? localeLanguage;
|
||||||
|
|
||||||
/// Android属性
|
/// Android属性
|
||||||
/// 是否使用本地加载tbs内核
|
/// 是否使用本地加载tbs内核
|
||||||
bool useLocalTbsCore = false;
|
bool useLocalTbsCore = false;
|
||||||
|
@ -267,6 +280,8 @@ class Config {
|
||||||
"useLocalTbsCore": useLocalTbsCore,
|
"useLocalTbsCore": useLocalTbsCore,
|
||||||
"tbsCoreUrl": tbsCoreUrl,
|
"tbsCoreUrl": tbsCoreUrl,
|
||||||
"enableJ2V8": enableJ2V8,
|
"enableJ2V8": enableJ2V8,
|
||||||
|
"customLanguagePath": customLanguagePath,
|
||||||
|
"localeLanguage": localeLanguage,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
name: mop
|
name: mop
|
||||||
description: A Finogeeks MiniProgram Flutter SDK.
|
description: A Finogeeks MiniProgram Flutter SDK.
|
||||||
version: '2.41.11'
|
version: '2.42.7'
|
||||||
homepage: https://github.com/finogeeks/mop-flutter-sdk
|
homepage: https://github.com/finogeeks/mop-flutter-sdk
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
|
|
Loading…
Reference in New Issue