Merge branch 'master' of ssh://gitlab.finogeeks.club:2233/finclipsdk/finclip-flutter-sdk
commit
1f11c925ca
|
@ -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";//App对应的scheme
|
||||
|
||||
- (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
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue