cxfeng1 closed pull request #1618: [WEEX-642][iOS] fix wxpageRatio not report
&& report createInstaceContext failed info
URL: https://github.com/apache/incubator-weex/pull/1618
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
index 06f01eb691..bc25837c62 100644
--- a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
+++ b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
@@ -458,6 +458,13 @@ - (void)createInstance:(NSString *)instanceIdString
[sdkInstance.apmInstance onStage:KEY_PAGE_STAGES_LOAD_BUNDLE_END];
} else {
sdkInstance.callCreateInstanceContext = [NSString
stringWithFormat:@"instanceId:%@\noptions:%@\ndata:%@", instanceIdString,
newOptions, data];
+ //add instanceId to weexContext ,if fucn createInstanceContext
failure ,then we will know which instance has problem (exceptionhandler)
+ self.jsBridge.javaScriptContext[@"wxExtFuncInfo"]= @{
+
@"func":@"createInstanceContext",
+
@"arg":@"start",
+
@"instanceId":sdkInstance.instanceId?:@"unknownId"
+ };
+ __weak typeof(self) weakSelf = self;
[self callJSMethod:@"createInstanceContext"
args:@[instanceIdString, newOptions, data?:@[]] onContext:nil
completion:^(JSValue *instanceContextEnvironment) {
if (sdkInstance.pageName) {
if (@available(iOS 8.0, *)) {
@@ -466,6 +473,7 @@ - (void)createInstance:(NSString *)instanceIdString
// Fallback
}
}
+ weakSelf.jsBridge.javaScriptContext[@"wxExtFuncInfo"]= nil;
NSMutableArray* allKeys = nil;
@@ -558,7 +566,8 @@ - (void)createInstance:(NSString *)instanceIdString
[sdkInstance.apmInstance
onStage:KEY_PAGE_STAGES_LOAD_BUNDLE_END];
NSDictionary* funcInfo = @{
@"func":@"createInstance",
- @"arg":@"start"
+ @"arg":@"start",
+
@"instanceId":sdkInstance.instanceId?:@"unknownId"
};
sdkInstance.instanceJavaScriptContext.javaScriptContext[@"wxExtFuncInfo"]=
funcInfo;
if ([NSURL URLWithString:sdkInstance.pageName] ||
sdkInstance.scriptURL) {
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
index 4afbb13fa5..3ce5e4407e 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
@@ -201,8 +201,7 @@ - (void)setFrame:(CGRect)frame
CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height;
if (screenHeight>0) {
CGFloat pageRatio = frame.size.height/screenHeight *100;
- pageRatio = pageRatio>100?100:pageRatio;
- [self.apmInstance setStatistic:KEY_PAGE_STATS_BODY_RATIO
withValue:pageRatio];
+ self.apmInstance.wxPageRatio = pageRatio>100?100:pageRatio;
}
WXPerformBlockOnMainThread(^{
if (_rootView) {
diff --git a/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.h
b/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.h
index e92bab0306..455cbf6e93 100644
--- a/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.h
+++ b/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.h
@@ -107,6 +107,7 @@ extern NSString* const VALUE_ERROR_CODE_DEFAULT;
@property (nonatomic, assign) BOOL isStartRender;
@property (nonatomic,assign) BOOL hasRecordFirstInterationView;
@property (nonatomic, assign) BOOL isDownLoadFailed;
+@property (nonatomic,assign) double wxPageRatio;
#pragma mark - basic method
diff --git a/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.m
b/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.m
index 170e03347f..5adeb011ee 100644
--- a/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.m
+++ b/ios/sdk/WeexSDK/Sources/Performance/WXApmForInstance.m
@@ -230,6 +230,7 @@ - (void) startRecord:(NSString*) instanceId
[self setProperty:KEY_PROPERTIES_ERROR_CODE
withValue:VALUE_ERROR_CODE_DEFAULT];
[self setProperty:KEY_PAGE_PROPERTIES_JSLIB_VERSION
withValue:[WXAppConfiguration
JSFrameworkVersion]?:@"unknownJSFrameworkVersion"];
[self setProperty:KEY_PAGE_PROPERTIES_WEEX_VERSION
withValue:WX_SDK_VERSION];
+ [self setStatistic:KEY_PAGE_STATS_BODY_RATIO withValue:self.wxPageRatio];
//for apm protocl
//iOS/Android we default recycle img when imgView disapper form screen
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services