Skip to content
This repository has been archived by the owner on Jun 3, 2021. It is now read-only.

Commit

Permalink
+ [ios] add comment for function and move prerender module
Browse files Browse the repository at this point in the history
  • Loading branch information
kfeagle committed May 16, 2017
1 parent b23500b commit 7256aee
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 111 deletions.
8 changes: 0 additions & 8 deletions ios/sdk/WeexSDK.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,6 @@
C41E1A981DC1FD15009C7F90 /* WXDatePickerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C41E1A961DC1FD15009C7F90 /* WXDatePickerManager.m */; };
C43C03E81EC8ACA40044C7FF /* WXPrerenderManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C43C03E41EC8ACA40044C7FF /* WXPrerenderManager.h */; };
C43C03E91EC8ACA40044C7FF /* WXPrerenderManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C43C03E51EC8ACA40044C7FF /* WXPrerenderManager.m */; };
C43C03EA1EC8ACA40044C7FF /* WXPrerenderModule.h in Headers */ = {isa = PBXBuildFile; fileRef = C43C03E61EC8ACA40044C7FF /* WXPrerenderModule.h */; };
C43C03EB1EC8ACA40044C7FF /* WXPrerenderModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C43C03E71EC8ACA40044C7FF /* WXPrerenderModule.m */; };
C4B3D6D41E6954300013F38D /* WXEditComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = C4B3D6D21E6954300013F38D /* WXEditComponent.h */; };
C4B3D6D51E6954300013F38D /* WXEditComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B3D6D31E6954300013F38D /* WXEditComponent.m */; };
C4B834271DE69B09007AD27E /* WXPickerModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B834251DE69B09007AD27E /* WXPickerModule.m */; };
Expand Down Expand Up @@ -559,8 +557,6 @@
C41E1A961DC1FD15009C7F90 /* WXDatePickerManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXDatePickerManager.m; sourceTree = "<group>"; };
C43C03E41EC8ACA40044C7FF /* WXPrerenderManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXPrerenderManager.h; sourceTree = "<group>"; };
C43C03E51EC8ACA40044C7FF /* WXPrerenderManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXPrerenderManager.m; sourceTree = "<group>"; };
C43C03E61EC8ACA40044C7FF /* WXPrerenderModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXPrerenderModule.h; sourceTree = "<group>"; };
C43C03E71EC8ACA40044C7FF /* WXPrerenderModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXPrerenderModule.m; sourceTree = "<group>"; };
C4B3D6D21E6954300013F38D /* WXEditComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXEditComponent.h; sourceTree = "<group>"; };
C4B3D6D31E6954300013F38D /* WXEditComponent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXEditComponent.m; sourceTree = "<group>"; };
C4B834251DE69B09007AD27E /* WXPickerModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXPickerModule.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1068,8 +1064,6 @@
children = (
C43C03E41EC8ACA40044C7FF /* WXPrerenderManager.h */,
C43C03E51EC8ACA40044C7FF /* WXPrerenderManager.m */,
C43C03E61EC8ACA40044C7FF /* WXPrerenderModule.h */,
C43C03E71EC8ACA40044C7FF /* WXPrerenderModule.m */,
C4F012801E1502E9003378D0 /* WXWebSocketModule.h */,
C4F012811E1502E9003378D0 /* WXWebSocketModule.m */,
C4B834251DE69B09007AD27E /* WXPickerModule.m */,
Expand Down Expand Up @@ -1351,7 +1345,6 @@
D334510C1D3E19B80083598A /* WXCanvasModule.h in Headers */,
742AD73A1DF98C8B007DC46C /* WXResourceLoader.h in Headers */,
746319291C71B92600EFEBD4 /* WXModalUIModule.h in Headers */,
C43C03EA1EC8ACA40044C7FF /* WXPrerenderModule.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -1584,7 +1577,6 @@
D312CE3C1C730DEB00046D68 /* WXWebComponent.m in Sources */,
74AD99851D5B0E59008F0336 /* WXPolyfillSet.m in Sources */,
D317338D1C57257000BB7539 /* WXTransform.m in Sources */,
C43C03EB1EC8ACA40044C7FF /* WXPrerenderModule.m in Sources */,
7461F8A91CFC33A800F62D44 /* WXThreadSafeMutableArray.m in Sources */,
745B2D6D1E5A8E1E0092D38A /* WXRecyclerDataController.m in Sources */,
2AC750251C7565690041D390 /* WXIndicatorComponent.m in Sources */,
Expand Down
1 change: 0 additions & 1 deletion ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ + (void)_registerDefaultModules
[self registerModule:@"picker" withClass:NSClassFromString(@"WXPickerModule")];
[self registerModule:@"meta" withClass:NSClassFromString(@"WXMetaModule")];
[self registerModule:@"webSocket" withClass:NSClassFromString(@"WXWebSocketModule")];
[self registerModule:@"prerender" withClass:NSClassFromString(@"WXPrerenderModule")];
}

+ (void)registerModule:(NSString *)name withClass:(Class)clazz
Expand Down
65 changes: 52 additions & 13 deletions ios/sdk/WeexSDK/Sources/Module/WXPrerenderManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,29 +21,68 @@
#import <WeexSDk/WeexSDK.h>

@class WXModuleMethod;
typedef NS_ENUM(NSUInteger, PrerenderStatus) {
PrerenderSucceed = 0,
PrerenderFail = 1,
};
typedef NS_ENUM(NSUInteger, PrerenderTaskType) {
PrerenderUITaskType = 0,
PrerenderMethodType = 1,
};

typedef void (^PrerenderCallback) (PrerenderStatus status, NSString* urlStr, NSString * msg);

@interface WXPrerenderManager : NSObject

- (instancetype) init NS_UNAVAILABLE;
+ (instancetype) sharedInstance;
+ (void) addTask:(NSString *) urlStr WXInstance:(NSString *) instanceId callback:(WXModuleCallback)callback;

/**
* @abstract add prerender task
*
* @param url The prerender url string
*
* @param instanceId The instanceId that its instance add prerender task
*
* @param callback the module method callback
*
**/
+ (void) addTask:(NSString *) url WXInstance:(NSString *)instanceId callback:(WXModuleCallback)callback;

/**
* @abstract Returns true if url is exist in task .
*
**/
+ (BOOL) isTaskExist:(NSString *)url;

/**
* @abstract Returns error if url is prerender fail .
*
**/
+ (NSError *)errorFromUrl:(NSString *)url;

/**
* @abstract excute render from prerender cache .
*
**/
+ (void) renderFromCache:(NSString *)url;

/**
* @abstract Returns prerender root view .
*
**/
+ (UIView *)viewFromUrl:(NSString *)url;

/**
* @abstract Returns prerender instance .
*
**/
+ (id)instanceFromUrl:(NSString *)url;

/**
* @abstract Remove prerender task by url .
*
**/
+ (void)removePrerenderTaskforUrl:(NSString *)url;

/**
* @abstract store prerender module task by url .
*
**/
+ (void)storePrerenderModuleTasks:(WXModuleMethod *)prerenderModuleTask forUrl:(NSString *)url;
+ (void)excuteModuleTasksForUrl:(NSString *)url;

/**
* @abstract destroy task , it will destroy instance also.
*
**/
+ (void)destroyTask:(NSString *)parentInstanceId;
@end
22 changes: 14 additions & 8 deletions ios/sdk/WeexSDK/Sources/Module/WXPrerenderManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -83,17 +83,17 @@ - (void) dealloc{
self.prerenderTasks = nil;
}

+ (void) addTask:(NSString *)urlStr WXInstance:(NSString *)instanceId callback:(WXModuleCallback)callback{
NSURL *url = [NSURL URLWithString:urlStr];
if(!url){
callback(@{@"url":urlStr,@"message":MSG_PRERENDER_INTERNAL_ERROR,@"result":@"error"});
+ (void) addTask:(NSString *)url WXInstance:(NSString *)instanceId callback:(WXModuleCallback)callback{
NSURL *newUrl = [NSURL URLWithString:url];
if(!newUrl){
callback(@{@"url":url,@"message":MSG_PRERENDER_INTERNAL_ERROR,@"result":@"error"});
return;
}

WXPrerenderManager *manager = [WXPrerenderManager sharedInstance];
__weak WXPrerenderManager *weakSelf = manager;
dispatch_async(manager.queue, ^{
[weakSelf prerender:url WXInstance:instanceId callback:callback];
[weakSelf prerender:newUrl WXInstance:instanceId callback:callback];
});
}

Expand Down Expand Up @@ -156,13 +156,17 @@ - (void) prerender:(NSURL *)url WXInstance:(NSString *)instanceId callback:(WXMo
instance.onCreate = ^(UIView *view) {
WXPrerenderTask *task = [weakSelf.prerenderTasks objectForKey:url.absoluteString];
task.view = view;
[weakSelf.prerenderTasks setObject:task forKey:url.absoluteString];
if(task){
[weakSelf.prerenderTasks setObject:task forKey:url.absoluteString];
}
};

instance.onFailed = ^(NSError *error) {
WXPrerenderTask *task = [weakSelf.prerenderTasks objectForKey:url.absoluteString];
task.error = error;
[weakSelf.prerenderTasks setObject:task forKey:url.absoluteString];
if(task){
[weakSelf.prerenderTasks setObject:task forKey:url.absoluteString];
}
};
}
}
Expand Down Expand Up @@ -245,7 +249,9 @@ + (void)storePrerenderModuleTasks:(WXModuleMethod *)method forUrl:(NSString *)ur
task.moduleTasks = [NSMutableArray new];
}
[task.moduleTasks addObject:method];
[manager.prerenderTasks setObject:task forKey:url];
if(task){
[manager.prerenderTasks setObject:task forKey:url];
}
}

+ (void)excuteModuleTasksForUrl:(NSString *)url
Expand Down
25 changes: 0 additions & 25 deletions ios/sdk/WeexSDK/Sources/Module/WXPrerenderModule.h

This file was deleted.

56 changes: 0 additions & 56 deletions ios/sdk/WeexSDK/Sources/Module/WXPrerenderModule.m

This file was deleted.

0 comments on commit 7256aee

Please sign in to comment.