Merge branch 'master' of ssh://gitlab.finogeeks.club:2233/finclipsdk/finclip-flutter-sdk

master
wanghualei 2021-12-29 10:11:56 +08:00
commit 1f11c925ca
2 changed files with 55 additions and 0 deletions

View File

@ -9,6 +9,12 @@
#import "MopPlugin.h"
#import "MopCustomMenuModel.h"
@interface NSString (FATEncode)
- (NSString *)fat_encodeString;
@end
@implementation MOPAppletDelegate
+ (instancetype)instance
@ -70,6 +76,9 @@
FATAppletMenuStyle style = [typeString isEqualToString:@"onMiniProgram"] ? FATAppletMenuStyleOnMiniProgram : FATAppletMenuStyleCommon;
model.menuType = style;
}
if ([@"Desktop" isEqualToString:model.menuId] && FATAppletVersionTypeRelease != appletInfo.appletVersionType) {
continue;
}
[models addObject:model];
}
@ -87,6 +96,11 @@
[channel invokeMethod:@"extensionApi:onCustomMenuClick" arguments:arguments result:^(id _Nullable result) {
}];
if ([@"Desktop" isEqualToString:customMenu.menuId]) {
[self addToDesktopItemClick:appletInfo path:path];
}
}
- (void)clickCustomItemMenuWithInfo:(NSDictionary *)contentInfo completion:(void (^)(FATExtensionCode code, NSDictionary *result))completion {
@ -102,6 +116,12 @@
}];
}
- (void)clickCustomItemMenuWithInfo:(NSDictionary *)contentInfo inApplet:(FATAppletInfo *)appletInfo completion:(void (^)(FATExtensionCode code, NSDictionary *result))completion {
if ([@"Desktop" isEqualToString:contentInfo[@"menuId"]]) {
[self addToDesktopItemClick:appletInfo path:contentInfo[@"path"]];
}
}
- (void)applet:(NSString *)appletId didOpenCompletion:(NSError *)error {
if (!appletId) {
return;
@ -113,4 +133,34 @@
}];
}
static NSString *scheme = @"fatae55433be2f62915";//Appscheme
- (void)addToDesktopItemClick:(FATAppletInfo *)appInfo path:(NSString *)path {
NSMutableString *herf = [NSString stringWithFormat:@"%@://applet/appid/%@?", scheme, appInfo.appId].mutableCopy;
NSString *query = [NSString stringWithFormat:@"apiServer=%@&path=%@",appInfo.apiServer, path];
if ([appInfo.startParams[@"query"] length]) {
query = [NSString stringWithFormat:@"%@&query=%@",query, appInfo.startParams[@"query"]];
}
[herf appendString:query.fat_encodeString];
NSMutableString *url = [NSMutableString stringWithFormat:@"%@/mop/scattered-page/#/desktopicon", appInfo.apiServer];
[url appendFormat:@"?iconpath=%@", appInfo.appAvatar];
[url appendFormat:@"&apptitle=%@", appInfo.appTitle.fat_encodeString];
[url appendFormat:@"&linkhref=%@", herf];
NSLog(@"跳转到中间页面:%@", url);
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
@end
@implementation NSString (FATEncode)
- (NSString *)fat_encodeString {
return (__bridge NSString *)CFURLCreateStringByAddingPercentEscapes( NULL, (__bridge CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);
}
@end

View File

@ -88,6 +88,11 @@ static MopPlugin *_instance;
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options
{
if (![FATClient sharedClient].inited) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[[FATClient sharedClient] handleOpenURL:url];
});
}
return [[FATClient sharedClient] handleOpenURL:url];
}