Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(ios): update demo and eliminate some warnings #4009

Merged
merged 1 commit into from
Aug 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion driver/js/src/napi/jsc/jsc_ctx.cc
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ std::shared_ptr<CtxValue> JSCCtx::DefineClass(const string_view& name,
JSStringRef set_key_name = JSStringCreateWithCharacters(reinterpret_cast<const JSChar *>(kSetStr), ARRAY_SIZE(kSetStr) - 1);
JSStringRef define_property_name = JSStringCreateWithCharacters(reinterpret_cast<const JSChar *>(kDefinePropertyStr), ARRAY_SIZE(kDefinePropertyStr) - 1);
JSStringRef object_name = JSStringCreateWithCharacters(reinterpret_cast<const JSChar *>(kObjectStr), ARRAY_SIZE(kObjectStr) - 1);
for (auto i = 0; i < property_count; ++i) {
for (size_t i = 0; i < property_count; ++i) {
auto property_descriptor = properties[i];
auto property_object = JSObjectMake(context_, parent_class_ref, nullptr);
if (property_descriptor->getter) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSUInteger, DriverType) {
DriverTypeReact,
DriverTypeVue,
DriverTypeVue2,
DriverTypeVue3
};

typedef NS_ENUM(NSUInteger, RenderType) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,15 @@
static NSString *const kDebugCell = @"debugCell";

static NSString *const kDriverTypeReact = @"JS React";
static NSString *const kDriverTypeVue = @"JS Vue";
static NSString *const kDriverTypeVue2 = @"JS Vue2";
static NSString *const kDriverTypeVue3 = @"JS Vue3";

static NSString *const kRenderTypeNative = @"Native";

static NSString *const kCancel = @"取消";

@interface PageCreationViewController ()<UITableViewDelegate, UITableViewDataSource> {
NSString *_currentDriver;
DriverType _currentDriver;
NSString *_renderer;
UITableView *_tableView;
BOOL _debugMode;
Expand All @@ -54,7 +55,7 @@ - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self setNavigationItemTitle:@"Page Managerment"];
_currentDriver = kDriverTypeReact;
_currentDriver = DriverTypeReact;
_renderer = kRenderTypeNative;
[self setNavigationAreaBackground:[UIColor whiteColor]];
CGFloat ratio = 229.f / 255.f;
Expand Down Expand Up @@ -120,13 +121,14 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

if (0 == [indexPath section]) {
PageCreationCell *cell =
(PageCreationCell *)[tableView dequeueReusableCellWithIdentifier:kNormalCell
forIndexPath:indexPath];
cell.summaryImageView.image = [UIImage imageFromIconName:@"driver_icon"];
cell.typeLabel.text = @"Driver";
cell.subTypeLabel.text = _currentDriver;
cell.subTypeLabel.text = @[kDriverTypeReact, kDriverTypeVue2, kDriverTypeVue3][_currentDriver];
return cell;
}
else if (1 == [indexPath section]) {
Expand Down Expand Up @@ -202,19 +204,25 @@ - (void)showDriverSelectMenu {
[alert addAction:[UIAlertAction actionWithTitle:kDriverTypeReact style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
PageCreationViewController *strongVC = weakVC;
if (strongVC) {
strongVC->_currentDriver = action.title;
strongVC->_currentDriver = DriverTypeReact;
[strongVC->_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}]];
[alert addAction:[UIAlertAction actionWithTitle:kDriverTypeVue style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
[alert addAction:[UIAlertAction actionWithTitle:kDriverTypeVue2 style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
PageCreationViewController *strongVC = weakVC;
if (strongVC) {
strongVC->_currentDriver = action.title;
strongVC->_currentDriver = DriverTypeVue2;
[strongVC->_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
}
}]];
[alert addAction:[UIAlertAction actionWithTitle:kCancel style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
[alert addAction:[UIAlertAction actionWithTitle:kDriverTypeVue3 style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
PageCreationViewController *strongVC = weakVC;
if (strongVC) {
strongVC->_currentDriver = DriverTypeVue3;
[strongVC->_tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone];
}
}]];
[alert addAction:[UIAlertAction actionWithTitle:kCancel style:UIAlertActionStyleCancel handler:nil]];
[self presentViewController:alert animated:YES completion:NULL];
}

Expand Down Expand Up @@ -251,18 +259,18 @@ - (void)showRenderSelectMenu {
}

- (void)createDemoAction {
PageCreationCell *cell0 = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
DriverType driverType = [[cell0 subTypeLabel].text isEqualToString:@"JS React"]?DriverTypeReact:DriverTypeVue;
// PageCreationCell *cell1 = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1]];
DriverType driverType = _currentDriver;
RenderType renderType = RenderTypeNative;
//[cell1.subTypeLabel.text isEqualToString:@"Native"]?RenderTypeNative:RenderTypeNative;
NSURL *debugURL = nil;
if (_debugMode) {
DebugCell *cell2 = [_tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:2]];
NSString *debugString = [cell2 debugURLString];
debugURL = [NSURL URLWithString:debugString];
}
HippyDemoViewController *vc = [[HippyDemoViewController alloc] initWithDriverType:driverType renderType:renderType debugURL:debugURL isDebugMode:_debugMode];
HippyDemoViewController *vc = [[HippyDemoViewController alloc] initWithDriverType:driverType
renderType:renderType
debugURL:debugURL
isDebugMode:_debugMode];
NSMutableArray<__kindof UIViewController *> *viewControllers = [[self.navigationController viewControllers] mutableCopy];
[viewControllers removeLastObject];
[viewControllers addObject:vc];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,34 +33,6 @@
#import <hippy/HippyMethodInterceptorProtocol.h>


static NSString *formatLog(NSDate *timestamp, HippyLogLevel level, NSString *fileName, NSNumber *lineNumber, NSString *message) {
static NSArray *logLevelMap;
static NSDateFormatter *formatter;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
logLevelMap = @[@"TRACE", @"INFO", @"WARN", @"ERROR", @"FATAL"];
formatter = [NSDateFormatter new];
formatter.dateFormat = formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss.SSS";
});

NSString *levelStr = level < 0 || level > logLevelMap.count ? logLevelMap[1] : logLevelMap[level];

if(fileName){
return [[NSString alloc] initWithFormat:@"[%@][%@:%d][%@] %@",
[formatter stringFromDate:timestamp],
fileName.lastPathComponent,
lineNumber.intValue,
levelStr,
message
];
}else{
return [[NSString alloc] initWithFormat:@"[%@]%@",
[formatter stringFromDate:timestamp],
message
];
}
}

@interface HippyDemoViewController () <HippyMethodInterceptorProtocol, HippyBridgeDelegate, HippyRootViewDelegate> {
DriverType _driverType;
RenderType _renderType;
Expand Down Expand Up @@ -123,22 +95,19 @@ - (void)viewDidLoad {
}
}

- (void)registerLogFunction {
HippySetLogFunction(^(HippyLogLevel level, HippyLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
NSString *log = formatLog([NSDate date], level, fileName, lineNumber, message);
if([log hasSuffix:@"\n"]){
fprintf(stderr, "%s", log.UTF8String);
}else{
fprintf(stderr, "%s\n", log.UTF8String);
}
});
}

- (void)runHippyCache {
_hippyRootView.frame = self.contentAreaView.bounds;
[self.contentAreaView addSubview:_hippyRootView];
}

#pragma mark - Hippy Setup

- (void)registerLogFunction {
// Register your custom log function for Hippy,
// use HippyDefaultLogFunction as an example, it outputs logs to stderr.
HippySetLogFunction(HippyDefaultLogFunction);
}

- (void)runHippyDemo {
// Necessary configuration:
NSString *moduleName = @"Demo";
Expand Down Expand Up @@ -172,54 +141,43 @@ - (void)runHippyDemo {
delegate:self];
}

bridge.methodInterceptor = self;
// // Config whether jsc is inspectable, Highly recommended setting,
// since inspectable of JSC is disabled by default since iOS 16.4
[bridge setInspectable:YES];
_hippyBridge = bridge;
rootView.frame = self.contentAreaView.bounds;
rootView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
[self.contentAreaView addSubview:rootView];
_hippyRootView = rootView;


// Optional configs:
bridge.methodInterceptor = self; // see HippyMethodInterceptorProtocol
}


#pragma mark -
#pragma mark - Helpers

- (NSURL *)vendorBundleURL {
NSString *path = nil;
if (DriverTypeReact == _driverType) {
path = [[NSBundle mainBundle] pathForResource:@"vendor.ios" ofType:@"js" inDirectory:@"res/react"];
- (NSString *)currentJSBundleDir {
NSString *dir = nil;
if (DriverTypeVue2 == _driverType) {
dir = @"res/vue2";
} else if (DriverTypeVue3 == _driverType) {
dir = @"res/vue3";
} else if (DriverTypeReact == _driverType) {
dir = @"res/react";
}
else if (DriverTypeVue == _driverType) {
path = [[NSBundle mainBundle] pathForResource:@"vendor.ios" ofType:@"js" inDirectory:@"res/vue3"];
}
return [NSURL fileURLWithPath:path];
return dir;
}

- (NSURL *)indexBundleURL {
NSString *path = nil;
if (DriverTypeReact == _driverType) {
path = [[NSBundle mainBundle] pathForResource:@"index.ios" ofType:@"js" inDirectory:@"res/react"];
}
else if (DriverTypeVue == _driverType) {
path = [[NSBundle mainBundle] pathForResource:@"index.ios" ofType:@"js" inDirectory:@"res/vue3"];
}
- (NSURL *)vendorBundleURL {
NSString *path = [[NSBundle mainBundle] pathForResource:@"vendor.ios" ofType:@"js" inDirectory:[self currentJSBundleDir]];
return [NSURL fileURLWithPath:path];
}

- (DriverType)driverType {
return _driverType;
}

- (RenderType)renderType {
return _renderType;
}

- (NSURL *)debugURL {
return _debugURL;
}

- (BOOL)isDebugMode {
return _isDebugMode;
- (NSURL *)indexBundleURL {
NSString *path = [[NSBundle mainBundle] pathForResource:@"index.ios" ofType:@"js" inDirectory:[self currentJSBundleDir]];
return [NSURL fileURLWithPath:path];
}

- (void)removeRootView:(NSNumber *)rootTag bridge:(HippyBridge *)bridge {
Expand Down Expand Up @@ -258,7 +216,7 @@ - (BOOL)shouldStartInspector:(HippyBridge *)bridge {
}


#pragma mark - HippyMethodInterceptorProtocol
#pragma mark - Optional - HippyMethodInterceptorProtocol

- (BOOL)shouldInvokeWithModuleName:(NSString *)moduleName
methodName:(NSString *)methodName
Expand Down
27 changes: 0 additions & 27 deletions framework/examples/ios-demo/HippyDemo/TestModule.h

This file was deleted.

Loading
Loading