flutter boost初始化封装

This commit is contained in:
zu
2021-09-09 17:50:03 +08:00
parent dd3c8b3453
commit 65a3731828
6 changed files with 82 additions and 48 deletions

View File

@@ -54,13 +54,14 @@
18E7B26526E8D4510064BC9B /* Toast.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18E7B24726E8D43C0064BC9B /* Toast.xcframework */; };
18E7B26626E8D4510064BC9B /* Toast.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 18E7B24726E8D43C0064BC9B /* Toast.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18E7B26926E8D5D60064BC9B /* XCCurrentVCStackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B26726E8D5D60064BC9B /* XCCurrentVCStackManager.m */; };
18E7B29026EA0E6B0064BC9B /* FlutterBoost+Xplan.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B28F26EA0E6B0064BC9B /* FlutterBoost+Xplan.m */; };
73FFADDC93E195344047A2EC /* Pods_xplan_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_xplan_ios.framework */; };
9B0E1C5926E77022005D4442 /* BaseNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0E1C5826E77022005D4442 /* BaseNavigationController.m */; };
E8B825BA26E9A9D5009E8E9F /* BaseObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825B926E9A9D5009E8E9F /* BaseObject.m */; };
E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E872308826E89BE000B90D4F /* LoginPhoneViewController.m */; };
E872308D26E89DAA00B90D4F /* LoginInputView.m in Sources */ = {isa = PBXBuildFile; fileRef = E872308C26E89DAA00B90D4F /* LoginInputView.m */; };
E872309026E8D29300B90D4F /* LoginVerifCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E872308F26E8D29300B90D4F /* LoginVerifCodeViewController.m */; };
E872309326E8D31500B90D4F /* LoginVerifCodeView.m in Sources */ = {isa = PBXBuildFile; fileRef = E872309226E8D31500B90D4F /* LoginVerifCodeView.m */; };
E8B825BA26E9A9D5009E8E9F /* BaseObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825B926E9A9D5009E8E9F /* BaseObject.m */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -157,13 +158,13 @@
18E7B24D26E8D43C0064BC9B /* flutter_boost.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = flutter_boost.xcframework; sourceTree = "<group>"; };
18E7B26726E8D5D60064BC9B /* XCCurrentVCStackManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCCurrentVCStackManager.m; sourceTree = "<group>"; };
18E7B26826E8D5D60064BC9B /* XCCurrentVCStackManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XCCurrentVCStackManager.h; sourceTree = "<group>"; };
18E7B28E26EA0E6B0064BC9B /* FlutterBoost+Xplan.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FlutterBoost+Xplan.h"; sourceTree = "<group>"; };
18E7B28F26EA0E6B0064BC9B /* FlutterBoost+Xplan.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "FlutterBoost+Xplan.m"; sourceTree = "<group>"; };
7DB00EC07F1D0ADFF900B38D /* Pods-xplan-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.debug.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.debug.xcconfig"; sourceTree = "<group>"; };
9B0E1C5726E77022005D4442 /* BaseNavigationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseNavigationController.h; sourceTree = "<group>"; };
9B0E1C5826E77022005D4442 /* BaseNavigationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseNavigationController.m; sourceTree = "<group>"; };
B66633E061B1B34177CD011C /* Pods-xplan-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-xplan-ios.release.xcconfig"; path = "Target Support Files/Pods-xplan-ios/Pods-xplan-ios.release.xcconfig"; sourceTree = "<group>"; };
CACF623970097D653132D69A /* Pods_xplan_ios.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_xplan_ios.framework; sourceTree = BUILT_PRODUCTS_DIR; };
E8B825B826E9A9D5009E8E9F /* BaseObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseObject.h; sourceTree = "<group>"; };
E8B825B926E9A9D5009E8E9F /* BaseObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseObject.m; sourceTree = "<group>"; };
E872308726E89BE000B90D4F /* LoginPhoneViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginPhoneViewController.h; sourceTree = "<group>"; };
E872308826E89BE000B90D4F /* LoginPhoneViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginPhoneViewController.m; sourceTree = "<group>"; };
E872308B26E89DAA00B90D4F /* LoginInputView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginInputView.h; sourceTree = "<group>"; };
@@ -172,6 +173,8 @@
E872308F26E8D29300B90D4F /* LoginVerifCodeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginVerifCodeViewController.m; sourceTree = "<group>"; };
E872309126E8D31500B90D4F /* LoginVerifCodeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoginVerifCodeView.h; sourceTree = "<group>"; };
E872309226E8D31500B90D4F /* LoginVerifCodeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginVerifCodeView.m; sourceTree = "<group>"; };
E8B825B826E9A9D5009E8E9F /* BaseObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseObject.h; sourceTree = "<group>"; };
E8B825B926E9A9D5009E8E9F /* BaseObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseObject.m; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -472,6 +475,8 @@
18E7B22826E8CE100064BC9B /* XCFlutterKeyConst.h */,
18E7B22426E8CDCF0064BC9B /* XplanFlutterBoostDelegate.h */,
18E7B22326E8CDCF0064BC9B /* XplanFlutterBoostDelegate.m */,
18E7B28E26EA0E6B0064BC9B /* FlutterBoost+Xplan.h */,
18E7B28F26EA0E6B0064BC9B /* FlutterBoost+Xplan.m */,
);
path = Match;
sourceTree = "<group>";
@@ -680,6 +685,7 @@
E872309026E8D29300B90D4F /* LoginVerifCodeViewController.m in Sources */,
189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */,
E872308926E89BE000B90D4F /* LoginPhoneViewController.m in Sources */,
18E7B29026EA0E6B0064BC9B /* FlutterBoost+Xplan.m in Sources */,
189DD75926E6003C00AB55B1 /* Api.m in Sources */,
189DD53F26DE255600AB55B1 /* main.m in Sources */,
E872308D26E89DAA00B90D4F /* LoginInputView.m in Sources */,

View File

@@ -8,11 +8,7 @@
#import "AppDelegate.h"
#import "TabbarViewController.h"
#import "BaseNavigationController.h"
#import "XplanFlutterBoostDelegate.h"
#import "XCFlutterKeyConst.h"
#import "YYUtility.h"
#import "HttpRequestHelper.h"
#import "AccountInfoStorage.h"
#import "FlutterBoost+Xplan.h"
@interface AppDelegate ()
@@ -22,41 +18,7 @@
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
XplanFlutterBoostDelegate* delegate=[[XplanFlutterBoostDelegate alloc] init];
[[FlutterBoost instance] setup:application delegate:delegate callback:^(FlutterEngine *engine) {
FlutterMethodChannel* methodChannel = [FlutterMethodChannel
methodChannelWithName:@"com.mango.flutter.xplan"
binaryMessenger:engine.binaryMessenger];
[methodChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {
NSString *method = call.method;
if ([method isEqualToString:YYFlutterGetNativeGetDeviceInfo]) {
NSDictionary *dic = [HttpRequestHelper configBaseParmars:[[NSDictionary alloc] init]];
result(dic);
} else if ([method isEqualToString:YYFlutterGetNativeGetAuth]) {
NSDictionary *dic = @{
@"pub_uid" : [[AccountInfoStorage instance] getUid],
@"pub_ticket" : [[AccountInfoStorage instance] getTicket]
};
result(dic);
} else if ([method isEqualToString:YYFlutterGetNativeGetDiamond]) {
// [[GetCore(PurseCore) rac_requestBalanceInfo:GetCore(AuthCore).getUid.userIDValue] subscribeNext:^(id _Nullable x) {
// BalanceInfo * info = (BalanceInfo *)x;
// NSNumber *diamonds = [[NSNumber alloc] initWithDouble:info.diamonds.doubleValue];
// result(diamonds);
// }];
} else if([method isEqualToString:YYFlutterGetNativeGetEncodePwd]) {
// if (call.arguments) {
// NSString * password = call.arguments;
// NSString * encrptStr = [DESEncrypt encryptUseDES:password key:keyWithType(KeyType_PwdEncode, NO)];
// result(encrptStr);
// }
} else if([method isEqualToString:YYFlutterGetNativeNotifyShowInvite]) {
// BOOL show = [NSString stringWithFormat:@"%@", call.arguments].boolValue;
// NotifyCoreClient(ShowInviteClient, @selector(onShowInvite:), onShowInvite:show);
}
}];
}];
[[FlutterBoost instance] setup:application];
TabbarViewController *vc = [[TabbarViewController alloc] init];
BaseNavigationController *bnc = [[BaseNavigationController alloc] initWithRootViewController:vc];

View File

@@ -0,0 +1,16 @@
//
// FlutterBoost+Xplan.h
// xplan-ios
//
// Created by zu on 2021/9/9.
//
#import <flutter_boost/FlutterBoost.h>
NS_ASSUME_NONNULL_BEGIN
@interface FlutterBoost (Xplan)
- (void)setup:(UIApplication*)application;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,55 @@
//
// FlutterBoost+Xplan.m
// xplan-ios
//
// Created by zu on 2021/9/9.
//
#import "FlutterBoost+Xplan.h"
#import "XCFlutterKeyConst.h"
#import "XplanFlutterBoostDelegate.h"
#import "YYUtility.h"
#import "HttpRequestHelper.h"
#import "AccountInfoStorage.h"
@implementation FlutterBoost (Xplan)
- (void)setup:(UIApplication *)application {
XplanFlutterBoostDelegate* delegate = [[XplanFlutterBoostDelegate alloc] init];
[self setup:application delegate:delegate callback:^(FlutterEngine *engine) {
FlutterMethodChannel* methodChannel = [FlutterMethodChannel
methodChannelWithName:@"com.mango.flutter.xplan"
binaryMessenger:engine.binaryMessenger];
[methodChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {
NSString *method = call.method;
if ([method isEqualToString:YYFlutterGetNativeGetDeviceInfo]) {
NSDictionary *dic = [HttpRequestHelper configBaseParmars:[[NSDictionary alloc] init]];
result(dic);
} else if ([method isEqualToString:YYFlutterGetNativeGetAuth]) {
NSDictionary *dic = @{
@"pub_uid" : [[AccountInfoStorage instance] getUid],
@"pub_ticket" : [[AccountInfoStorage instance] getTicket]
};
result(dic);
} else if ([method isEqualToString:YYFlutterGetNativeGetDiamond]) {
// [[GetCore(PurseCore) rac_requestBalanceInfo:GetCore(AuthCore).getUid.userIDValue] subscribeNext:^(id _Nullable x) {
// BalanceInfo * info = (BalanceInfo *)x;
// NSNumber *diamonds = [[NSNumber alloc] initWithDouble:info.diamonds.doubleValue];
// result(diamonds);
// }];
} else if([method isEqualToString:YYFlutterGetNativeGetEncodePwd]) {
// if (call.arguments) {
// NSString * password = call.arguments;
// NSString * encrptStr = [DESEncrypt encryptUseDES:password key:keyWithType(KeyType_PwdEncode, NO)];
// result(encrptStr);
// }
} else if([method isEqualToString:YYFlutterGetNativeNotifyShowInvite]) {
// BOOL show = [NSString stringWithFormat:@"%@", call.arguments].boolValue;
// NotifyCoreClient(ShowInviteClient, @selector(onShowInvite:), onShowInvite:show);
}
}];
}];
}
@end

View File

@@ -9,7 +9,6 @@
#import <Foundation/Foundation.h>
#import "XCCurrentVCStackManager.h"
#import "BaseNavigationController.h"
#import <flutter_boost/FlutterBoost.h>
#import "XplanFlutterBoostDelegate.h"
#import "XCFlutterKeyConst.h"
@@ -40,8 +39,6 @@
///flutter
- (void)pushFlutterRoute:(NSString *)pageName uniqueId:(NSString *)uniqueId arguments:(NSDictionary *)arguments completion:(void (^)(BOOL))completion {
FlutterEngine* engine = [[FlutterBoost instance ] engine];
engine.viewController = nil;
FBFlutterViewContainer *vc = FBFlutterViewContainer.new;
[vc setName:pageName uniqueId:nil params:arguments];
UIViewController *rvc = [XCCurrentVCStackManager shareManager].getCurrentVC;

View File

@@ -67,8 +67,6 @@
NSArray *selectImageNames = @[@"tab_game_selected", @"tab_mine_selected"];
NSArray *tabLabel = @[@"赛事", @"我的"];
FlutterEngine* engine = [[FlutterBoost instance ] engine];
engine.viewController = nil;
FBFlutterViewContainer *fvcGame = FBFlutterViewContainer.new;
#ifdef DEBUG
[fvcGame setName:@"debug" uniqueId:nil params:nil];