You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ji...@apache.org on 2017/01/24 08:21:35 UTC
[24/50] [abbrv] incubator-weex git commit: * [ios] ensure default
modules/components/handlers are ready before create instance.
* [ios] ensure default modules/components/handlers are ready before create instance.
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/fdf5ed75
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/fdf5ed75
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/fdf5ed75
Branch: refs/heads/master
Commit: fdf5ed7533a15ff7126322a052bbf288cf249b87
Parents: 9b6f726
Author: \u9690\u98ce <cx...@gmail.com>
Authored: Wed Jan 11 11:33:55 2017 +0800
Committer: \u9690\u98ce <cx...@gmail.com>
Committed: Wed Jan 11 11:33:55 2017 +0800
----------------------------------------------------------------------
ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h | 7 ++++++-
ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m | 14 +++++++++++---
ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m | 4 ++++
3 files changed, 21 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fdf5ed75/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h b/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h
index 691573d..ad2f742 100644
--- a/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h
+++ b/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h
@@ -13,7 +13,12 @@
@interface WXSDKEngine : NSObject
/**
- * @abstract Registers a module for a given name
+ * @abstract Register default modules/components/handlers, they will be reigstered only once.
+ **/
++ (void)registerDefaults;
+
+/**
+ * @abstract Register a module for a given name
*
* @param name The module name to register
*
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fdf5ed75/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m b/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
index 642cabc..a23e03e 100644
--- a/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
+++ b/ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m
@@ -208,13 +208,21 @@
return;
}
- [self _registerDefaultComponents];
- [self _registerDefaultModules];
- [self _registerDefaultHandlers];
+ [self registerDefaults];
[[WXSDKManager bridgeMgr] executeJsFramework:script];
}
++ (void)registerDefaults
+{
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ [self _registerDefaultComponents];
+ [self _registerDefaultModules];
+ [self _registerDefaultHandlers];
+ });
+}
+
+ (NSString*)SDKEngineVersion
{
return WX_SDK_VERSION;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fdf5ed75/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
index 50901bc..fd5a53b 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
@@ -25,6 +25,7 @@
#import "WXResourceRequest.h"
#import "WXResourceResponse.h"
#import "WXResourceLoader.h"
+#import "WXSDKEngine.h"
NSString *const bundleUrlOptionKey = @"bundleUrl";
@@ -173,6 +174,9 @@ typedef enum : NSUInteger {
}
});
+ // ensure default modules/components/handlers are ready before create instance
+ [WXSDKEngine registerDefaults];
+
[[WXSDKManager bridgeMgr] createInstance:self.instanceId template:mainBundleString options:dictionary data:_jsData];
WX_MONITOR_PERF_SET(WXPTBundleSize, [mainBundleString lengthOfBytesUsingEncoding:NSUTF8StringEncoding], self);