You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by zs...@apache.org on 2017/08/01 02:55:07 UTC
[40/50] [abbrv] incubator-weex git commit: + [ios] add create finish
+ [ios] add create finish
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/486d6833
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/486d6833
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/486d6833
Branch: refs/heads/dev
Commit: 486d6833f9929562b154a10524ba75380b27eb7c
Parents: 816e1d5
Author: 齐山 <su...@163.com>
Authored: Wed Jul 26 14:30:57 2017 +0800
Committer: 齐山 <su...@163.com>
Committed: Wed Jul 26 14:30:57 2017 +0800
----------------------------------------------------------------------
ios/playground/WeexDemo/WXDemoViewController.m | 1 -
.../WeexSDK/Sources/Bridge/WXBridgeContext.m | 22 ++++++++++++++++++++
ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m | 14 +++++++++++++
.../Sources/Manager/WXComponentManager.m | 1 +
.../WeexSDK/Sources/Protocol/WXBridgeProtocol.h | 5 +++++
5 files changed, 42 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/playground/WeexDemo/WXDemoViewController.m
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/WXDemoViewController.m b/ios/playground/WeexDemo/WXDemoViewController.m
index c77650b..81a2dae 100644
--- a/ios/playground/WeexDemo/WXDemoViewController.m
+++ b/ios/playground/WeexDemo/WXDemoViewController.m
@@ -146,7 +146,6 @@
_instance.renderFinish = ^(UIView *view) {
WXLogDebug(@"%@", @"Render Finish...");
- [WXTracingManager startTracingWithInstanceId:weakSelf.instance.instanceId ref:nil className:nil name:nil phase:WXTracingInstant functionName:WXTRenderFinish options:nil];
[weakSelf updateInstanceState:WeexInstanceAppear];
};
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
index 526f64c..f04a0db 100644
--- a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
+++ b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
@@ -294,6 +294,28 @@ _Pragma("clang diagnostic pop") \
return 0;
}];
+ [_jsBridge registerCallCreateFinish:^NSInteger(NSString *instanceId) {
+
+ // Temporary here , in order to improve performance, will be refactored next version.
+ WXSDKInstance *instance = [WXSDKManager instanceForID:instanceId];
+
+ if(![weakSelf checkInstance:instance]) {
+ return -1;
+ }
+
+ WXPerformBlockOnComponentThread(^{
+ WXComponentManager *manager = instance.componentManager;
+ if (!manager.isValid) {
+ return;
+ }
+ [manager startComponentTasks];
+ [manager createFinish];
+ [WXTracingManager startTracingWithInstanceId:instanceId ref:nil className:nil name:WXTJSCall phase:WXTracingEnd functionName:@"createFinish" options:nil];
+ });
+
+ return 0;
+ }];
+
[_jsBridge registerCallNativeModule:^NSInvocation*(NSString *instanceId, NSString *moduleName, NSString *methodName, NSArray *arguments, NSDictionary *options) {
WXSDKInstance *instance = [WXSDKManager instanceForID:instanceId];
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
index 3bd0b07..13d8578 100644
--- a/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
+++ b/ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m
@@ -326,6 +326,20 @@
_jsContext[@"callRemoveEvent"] = WXJSCallRemoveEventBlock;
}
+
+- (void)registerCallCreateFinish:(WXJSCallCreateFinish)callCreateFinish
+{
+ id WXJSCallCreateFinishBlock = ^(JSValue *instanceId, JSValue *ifCallback) {
+
+ NSString *instanceIdString = [instanceId toString];
+
+ WXLogDebug(@"callRCreateFinish...%@", instanceIdString);
+ [WXTracingManager startTracingWithInstanceId:instanceIdString ref:nil className:nil name:WXTJSCall phase:WXTracingBegin functionName:@"createFinish" options:nil];
+ return [JSValue valueWithInt32:(int32_t)callCreateFinish(instanceIdString) inContext:[JSContext currentContext]];
+ };
+
+ _jsContext[@"callCreateFinish"] = WXJSCallCreateFinishBlock;
+}
- (void)registerCallNativeModule:(WXJSCallNativeModule)callNativeModuleBlock
{
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
index ea2d4a8..e1774dd 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
@@ -519,6 +519,7 @@ static css_node_t * rootNodeGetChild(void *context, int i)
WX_MONITOR_SUCCESS(WXMTNativeRender);
if(instance.renderFinish){
+ [WXTracingManager startTracingWithInstanceId:instance.instanceId ref:nil className:nil name:nil phase:WXTracingInstant functionName:WXTRenderFinish options:nil];
instance.renderFinish(rootView);
}
}];
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486d6833/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h b/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
index 7cf115f..e883b20 100644
--- a/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
+++ b/ios/sdk/WeexSDK/Sources/Protocol/WXBridgeProtocol.h
@@ -28,6 +28,7 @@ typedef NSInteger(^WXJSCallUpdateAttrs)(NSString *instanceId,NSString *ref,NSDic
typedef NSInteger(^WXJSCallUpdateStyle)(NSString *instanceId,NSString *ref,NSDictionary *stylesData);
typedef NSInteger(^WXJSCallAddEvent)(NSString *instanceId,NSString *ref,NSString *event);
typedef NSInteger(^WXJSCallRemoveEvent)(NSString *instanceId,NSString *ref,NSString *event);
+typedef NSInteger(^WXJSCallCreateFinish)(NSString *instanceId);
typedef NSInvocation *(^WXJSCallNativeModule)(NSString *instanceId, NSString *moduleName, NSString *methodName, NSArray *args, NSDictionary *options);
typedef void (^WXJSCallNativeComponent)(NSString *instanceId, NSString *componentRef, NSString *methodName, NSArray *args, NSDictionary *options);
@@ -110,6 +111,10 @@ typedef void (^WXJSCallNativeComponent)(NSString *instanceId, NSString *componen
*/
- (void)registerCallRemoveEvent:(WXJSCallRemoveEvent)callRemoveEvent;
/**
+ * Register callback when createFinish tasks occur
+*/
+- (void)registerCallCreateFinish:(WXJSCallCreateFinish)callCreateFinish;
+/**
* Register callback for global js function `callNativeModule`
*/
- (void)registerCallNativeModule:(WXJSCallNativeModule)callNativeModuleBlock;