Merge branch 'fix/customMenu'
commit
f4420176f1
|
@ -186,12 +186,17 @@ public class AppletHandlerModule extends BaseApi {
|
|||
if (image == null) {
|
||||
image = "";
|
||||
}
|
||||
String darkImage = (String) map.get("darkImage");
|
||||
if (darkImage == null) {
|
||||
darkImage = "";
|
||||
}
|
||||
moreMenuItems.add(
|
||||
new MoreMenuItem(
|
||||
menuId,
|
||||
title,
|
||||
image,
|
||||
-1,
|
||||
darkImage,
|
||||
moreMenuType,
|
||||
true
|
||||
)
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
# Uncomment this line to define a global platform for your project
|
||||
platform :ios, '9.0'
|
||||
|
||||
source 'ssh://gitlab.finogeeks.club/finclip-ios/DevPods'
|
||||
source 'ssh://gitlab.finogeeks.club/finclip-ios/FinPods'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
PODS:
|
||||
- FinApplet (2.40.9)
|
||||
- FinAppletExt (2.40.9):
|
||||
- FinApplet (= 2.40.9)
|
||||
- FinApplet (2.40.12-dev20230614v02)
|
||||
- FinAppletExt (2.40.12-dev20230614v02):
|
||||
- FinApplet (= 2.40.12-dev20230614v02)
|
||||
- Flutter (1.0.0)
|
||||
- mop (0.1.1):
|
||||
- FinApplet (= 2.40.9)
|
||||
- FinAppletExt (= 2.40.9)
|
||||
- FinApplet (= 2.40.12-dev20230614v02)
|
||||
- FinAppletExt (= 2.40.12-dev20230614v02)
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
|
@ -13,7 +13,7 @@ DEPENDENCIES:
|
|||
- mop (from `.symlinks/plugins/mop/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
ssh://gitlab.finogeeks.club/finclip-ios/DevPods:
|
||||
- FinApplet
|
||||
- FinAppletExt
|
||||
|
||||
|
@ -24,11 +24,11 @@ EXTERNAL SOURCES:
|
|||
:path: ".symlinks/plugins/mop/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
FinApplet: 9dd3810fb41400c882c8c5d5f528452b0f1f0a63
|
||||
FinAppletExt: e9f418e3d11f5cf4ee42b2d64ab405fe747f51fe
|
||||
FinApplet: de28575dab4c28c200c02844f4909b04d376def2
|
||||
FinAppletExt: eea5d939667836c744b5eb4afcc81285e248c9f3
|
||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||
mop: 8684b0dad361ce1d9b2d4a98d65a1acb52ce4120
|
||||
mop: d8bad2214a82a3440c154e496d0d49c1144490a4
|
||||
|
||||
PODFILE CHECKSUM: 2317ba7584871ae8cd67fd0244fbd5e96fd06167
|
||||
PODFILE CHECKSUM: 2da0220ee5ba22a2dfcec42dfe5b17d05f3c3da9
|
||||
|
||||
COCOAPODS: 1.11.3
|
||||
|
|
|
@ -496,6 +496,7 @@
|
|||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = 9QCKYFU5M4;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = finclip_example;
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "minipro_list_collect@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "minipro_list_collect@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "minipro_list_service@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "minipro_list_service@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
|
@ -45,6 +45,7 @@ class _MyAppState extends State<MyApp> {
|
|||
Config config = Config(storeConfigs);
|
||||
config.language = LanguageType.English;
|
||||
config.baseLoadingViewClass = "LoadingView";
|
||||
config.appletDebugMode = BOOLState.BOOLStateTrue;
|
||||
|
||||
UIConfig uiconfig = UIConfig();
|
||||
uiconfig.isAlwaysShowBackInDefaultNavigationBar = false;
|
||||
|
@ -59,6 +60,7 @@ class _MyAppState extends State<MyApp> {
|
|||
uiconfig.capsuleConfig = capsuleConfig;
|
||||
uiconfig.appletText = "applet";
|
||||
uiconfig.loadingLayoutCls = "com.finogeeks.mop_example.CustomLoadingPage";
|
||||
uiconfig.autoAdaptDarkMode = true;
|
||||
|
||||
// if (Platform.isIOS) {
|
||||
// final res = await Mop.instance.initialize(
|
||||
|
@ -129,16 +131,14 @@ class _MyAppState extends State<MyApp> {
|
|||
// physics: NeverScrollableScrollPhysics(),
|
||||
children: [
|
||||
_buildAppletItem(appletId, "打开小程序", () {
|
||||
// Mop.instance.openApplet(appletId,
|
||||
// path: 'pages/index/index', query: '');
|
||||
// TranstionStyle style = TranstionStyle.TranstionStyleUp;
|
||||
// if (appletId == "5f72e3559a6a7900019b5baa") {
|
||||
// style = TranstionStyle.TranstionStylePush;
|
||||
// }
|
||||
// RemoteAppletRequest request = RemoteAppletRequest(apiServer: 'https://api.finclip.com', appletId: appletId, transitionStyle: style);
|
||||
// Mop.instance.startApplet(request);
|
||||
TranstionStyle style = TranstionStyle.TranstionStyleUp;
|
||||
if (appletId == "5f72e3559a6a7900019b5baa") {
|
||||
style = TranstionStyle.TranstionStylePush;
|
||||
}
|
||||
RemoteAppletRequest request = RemoteAppletRequest(apiServer: 'https://api.finclip.com', appletId: appletId, transitionStyle: style);
|
||||
Mop.instance.startApplet(request);
|
||||
|
||||
Mop.instance.qrcodeOpenApplet('https://api.finclip.com/api/v1/mop/runtime/applet/-f-MGYzN2Q1YTYzMmI2MWIyZg--');
|
||||
// Mop.instance.qrcodeOpenApplet('https://api.finclip.com/api/v1/mop/runtime/applet/-f-MGYzN2Q1YTYzMmI2MWIyZg--');
|
||||
|
||||
}),
|
||||
_buildAppletItem(appletId, "finishRunningApplet", () {
|
||||
|
@ -170,7 +170,7 @@ class _MyAppState extends State<MyApp> {
|
|||
children: <Widget>[
|
||||
_buildAppletWidget("5facb3a52dcbff00017469bd", "画图小程序"),
|
||||
_buildAppletWidget("5f72e3559a6a7900019b5baa", "官方小程序"),
|
||||
_buildAppletWidget("5fa215459a6a7900019b5cc3", "我的对账单"),
|
||||
_buildAppletWidget("5f17f457297b540001e06ebb", "测试小程序"),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
@ -198,9 +198,18 @@ class MyAppletHandler extends AppletHandler {
|
|||
|
||||
@override
|
||||
Future<List<CustomMenu>> getCustomMenus(String appId) {
|
||||
CustomMenu menu1 = CustomMenu('WXTest', 'https://img1.baidu.com/it/u=2878938773,1765835171&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500', '百度图标', 'common');
|
||||
menu1.darkImage = 'https://img95.699pic.com/xsj/14/46/mh.jpg%21/fw/700/watermark/url/L3hzai93YXRlcl9kZXRhaWwyLnBuZw/align/southeast';
|
||||
|
||||
CustomMenu menu2 = CustomMenu('CustomMenu2', 'minipro_list_collect', '工程图标', 'common');
|
||||
menu2.darkImage = 'minipro_list_service';
|
||||
|
||||
List<CustomMenu> customMenus = [
|
||||
CustomMenu('WXShareAPPFriends', 'https://img1.baidu.com/it/u=2878938773,1765835171&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500', '微信好朋友', 'common'),
|
||||
CustomMenu('WXShareAPPMoments', 'https://img2.baidu.com/it/u=3113705544,436318069&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500', '微信朋友圈', 'common'),
|
||||
menu1,
|
||||
menu2,
|
||||
CustomMenu('MyFriends', 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSpvugSNLs9R7iopz_noeotAelvgzYj-74iCg&usqp=CAU', '谷歌图标', 'common'),
|
||||
// CustomMenu('WXShareAPPFriends', 'https://img1.baidu.com/it/u=2878938773,1765835171&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500', '微信好朋友', 'common'),
|
||||
// CustomMenu('WXShareAPPMoments', 'https://img2.baidu.com/it/u=3113705544,436318069&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500', '微信朋友圈', 'common'),
|
||||
|
||||
// CustomMenu('WXShareAPPFriends', 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSpvugSNLs9R7iopz_noeotAelvgzYj-74iCg&usqp=CAU', '微信好朋友', 'common'),
|
||||
// CustomMenu('WXShareAPPMoments', 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR7cO4KB4e5-Ugdcq4pIyWunliH7LZRZzguKQ&usqp=CAU', '微信朋友圈', 'common'),
|
||||
|
|
|
@ -91,10 +91,16 @@
|
|||
NSString *imageUrl = data[@"image"];
|
||||
if ([imageUrl hasPrefix:@"http"]) {
|
||||
// 需要异步加载,待优化!
|
||||
model.menuIconImage = [UIImage fat_getImageWithUrl:imageUrl];
|
||||
model.menuIconUrl = imageUrl;
|
||||
} else {
|
||||
model.menuIconImage = [UIImage imageNamed:imageUrl];
|
||||
}
|
||||
NSString *darkImageUrl = data[@"darkImage"];
|
||||
if ([darkImageUrl hasPrefix:@"http"]) {
|
||||
model.menuDarkIconUrl = darkImageUrl;
|
||||
} else {
|
||||
model.menuIconDarkImage = [UIImage imageNamed:darkImageUrl];
|
||||
}
|
||||
NSString *typeString = data[@"type"];
|
||||
if (typeString) {
|
||||
FATAppletMenuStyle style = [typeString isEqualToString:@"onMiniProgram"] ? FATAppletMenuStyleOnMiniProgram : FATAppletMenuStyleCommon;
|
||||
|
|
|
@ -12,6 +12,56 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
|
||||
@interface MopCustomMenuModel : NSObject <FATAppletMenuProtocol>
|
||||
|
||||
/**
|
||||
菜单id
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *menuId;
|
||||
|
||||
/**
|
||||
菜单的icon图标
|
||||
我们固定菜单的大小:3倍图:90*90
|
||||
图标中间小logo与图标宽度比是 5:8。
|
||||
注意:菜单图标显示优先级:后台配置icon > APP注入icon
|
||||
*/
|
||||
@property (nonatomic, strong) UIImage *menuIconImage;
|
||||
|
||||
/**
|
||||
菜单的icon图标网络链接地址
|
||||
我们固定菜单的大小:3倍图:90*90
|
||||
图标中间小logo与图标宽度比是 5:8,供参考
|
||||
注意:菜单图标显示优先级:后台配置的icon path > App注入的icon
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *menuIconUrl;
|
||||
|
||||
/**
|
||||
菜单在黑暗模式下的icon图标
|
||||
我们固定菜单的大小:3倍图:90*90
|
||||
图标中间小logo与图标宽度比是 5:8。
|
||||
注意:菜单图标显示优先级:后台配置icon > APP注入icon
|
||||
*/
|
||||
@property (nonatomic, strong) UIImage *menuIconDarkImage;
|
||||
|
||||
/**
|
||||
菜单的暗黑模式icon图标网络链接地址
|
||||
我们固定菜单的大小:3倍图:90*90
|
||||
图标中间小logo与图标宽度比是 5:8,供参考
|
||||
注意:菜单图标显示优先级:后台配置的darkIcon path > App注入的icon
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *menuDarkIconUrl;
|
||||
|
||||
/**
|
||||
菜单的标题
|
||||
注意:菜单标题显示优先级:后台配置标题 > APP注入标题
|
||||
*/
|
||||
@property (nonatomic, copy) NSString *menuTitle;
|
||||
|
||||
/**
|
||||
菜单的类型
|
||||
FATAppletMenuStyleCommon:通用的按钮,不需要小程序提供额外信息就可以调用的,比如收藏;
|
||||
FATAppletMenuStyleOnMiniProgram:需要小程序配合实现的按钮,也就是说需要小程序提供额外调用参数的按钮,比如分享到微信
|
||||
*/
|
||||
@property (nonatomic, assign) FATAppletMenuStyle menuType;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
|
|
@ -9,15 +9,16 @@
|
|||
|
||||
@implementation MopCustomMenuModel
|
||||
|
||||
@synthesize menuId, menuIconImage, menuTitle, menuType;
|
||||
|
||||
- (id)copyWithZone:(NSZone *)zone
|
||||
{
|
||||
MopCustomMenuModel *model = [[MopCustomMenuModel allocWithZone:zone] init];
|
||||
model.menuId = self.menuId;
|
||||
model.menuIconImage = self.menuIconImage;
|
||||
model.menuIconDarkImage = self.menuIconDarkImage;
|
||||
model.menuTitle = self.menuTitle;
|
||||
model.menuType = self.menuType;
|
||||
model.menuIconUrl = self.menuIconUrl;
|
||||
model.menuDarkIconUrl = self.menuDarkIconUrl;
|
||||
return model;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ A finclip miniprogram flutter sdk.
|
|||
s.dependency 'Flutter'
|
||||
s.ios.deployment_target = '9.0'
|
||||
|
||||
s.dependency 'FinApplet' , '2.41.0-alpha20230602v12'
|
||||
s.dependency 'FinAppletExt' , '2.41.0-alpha20230602v12'
|
||||
s.dependency 'FinApplet' , '2.40.12-dev20230614v02'
|
||||
s.dependency 'FinAppletExt' , '2.40.12-dev20230614v02'
|
||||
end
|
||||
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
class CustomMenu {
|
||||
String menuId;
|
||||
String image;
|
||||
String? darkImage;
|
||||
String title;
|
||||
String type;
|
||||
|
||||
CustomMenu(this.menuId, this.image, this.title, this.type);
|
||||
|
||||
Map<String, dynamic> toJson() =>
|
||||
{'menuId': menuId, 'image': image, 'title': title, 'type': type};
|
||||
{'menuId': menuId, 'image': image, 'darkImage': darkImage, 'title': title, 'type': type};
|
||||
}
|
||||
|
||||
abstract class AppletHandler {
|
||||
|
|
|
@ -1159,6 +1159,9 @@ class Mop {
|
|||
map["image"] = element.image;
|
||||
map["title"] = element.title;
|
||||
map["type"] = element.type;
|
||||
if (element.darkImage != null) {
|
||||
map["darkImage"] = element.darkImage;
|
||||
}
|
||||
list.add(map);
|
||||
});
|
||||
debugPrint("registerAppletHandler getCustomMenus list $list");
|
||||
|
|
Loading…
Reference in New Issue