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

Commit

Permalink
[iOS] put renderFailed on component thread run
Browse files Browse the repository at this point in the history
  • Loading branch information
jianhan-he committed May 15, 2019
1 parent 0ff3792 commit 5f5247d
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 12 deletions.
20 changes: 15 additions & 5 deletions ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,9 @@ - (void)registerGlobalFunctions
if (manager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
}
return 0;
Expand Down Expand Up @@ -436,7 +438,9 @@ - (void)createInstance:(NSString *)instanceIdString
if (manager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
}
WX_MONITOR_INSTANCE_PERF_END(WXPTJSCreateInstance, [WXSDKManager instanceForID:instanceIdString]);
Expand Down Expand Up @@ -616,7 +620,9 @@ - (void)createInstance:(NSString *)instanceIdString
if (manager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
}
WX_MONITOR_INSTANCE_PERF_END(WXPTJSCreateInstance, [WXSDKManager instanceForID:instanceIdString]);
Expand Down Expand Up @@ -757,7 +763,9 @@ - (void)destroyInstance:(NSString *)instance
if (manager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
}
} else {
Expand Down Expand Up @@ -787,7 +795,9 @@ - (void)refreshInstance:(NSString *)instance
if (manager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
return;
}
Expand Down
1 change: 0 additions & 1 deletion ios/sdk/WeexSDK/Sources/Engine/WXSDKError.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ typedef NS_ENUM(int, WXSDKErrCode)
WX_KEY_EXCEPTION_DEGRADE_OTHER_CAUSE = -9503,
WX_KEY_EXCEPTION_DEGRADE_NET_CODE_CAUSE = -9504,
WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR = -9505,
WX_KEY_EXCEPTION_DEGRADE_EAGLE_JS_DOWNLOAD_ERROR = -9506,

WX_KEY_EXCEPTION_ABILITY_DOWN = -9600,
WX_KEY_EXCEPTION_ABILITY_DOWN_IMAGE = -9601,
Expand Down
1 change: 0 additions & 1 deletion ios/sdk/WeexSDK/Sources/Engine/WXSDKError.m
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ +(NSDictionary *) getMap
@(WX_KEY_EXCEPTION_DEGRADE_CHECK_CONTENT_LENGTH_FAILED):@{ERROR_TYPE:@(WX_DEGRADE_ERROR),ERROR_GROUP:@(WX_NET)},
@(WX_KEY_EXCEPTION_DEGRADE_BUNDLE_CONTENTTYPE_ERROR):@{ERROR_TYPE:@(WX_DEGRADE_ERROR),ERROR_GROUP:@(WX_NET)},
@(WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR):@{ERROR_TYPE:@(WX_DEGRADE_ERROR),ERROR_GROUP:@(WX_JS)},
@(WX_KEY_EXCEPTION_DEGRADE_EAGLE_JS_DOWNLOAD_ERROR):@{ERROR_TYPE:@(WX_DEGRADE_ERROR),ERROR_GROUP:@(WX_JS)},
@(WX_KEY_EXCEPTION_DEGRADE_OTHER_CAUSE):@{ERROR_TYPE:@(WX_DEGRADE_ERROR),ERROR_GROUP:@(WX_NATIVE)},
@(WX_KEY_EXCEPTION_DEGRADE_NET_CODE_CAUSE):@{ERROR_TYPE:@(WX_DEGRADE_ERROR),ERROR_GROUP:@(WX_NET)},

Expand Down
14 changes: 10 additions & 4 deletions ios/sdk/WeexSDK/Sources/Manager/WXBridgeManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -326,9 +326,11 @@ - (void)DownloadJS:(NSString*)instance url:(NSURL *)scriptUrl completion:(void (
WXComponentManager *manager = sdkInstance.componentManager;
if (manager.isValid) {
NSString *errorMessage = [NSString stringWithFormat:@"Request to %@ occurs an error:%@, info:%@", request.URL, loadError.localizedDescription, loadError.userInfo];
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_JS_DOWNLOAD_ERROR;
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_JS_DOWNLOAD;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{NSLocalizedDescriptionKey:(errorMessage?:@"No message")}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
};

Expand Down Expand Up @@ -443,7 +445,9 @@ - (void)fireEvent:(NSString *)instanceId ref:(NSString *)ref type:(NSString *)ty
if (manager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
}
return;
Expand Down Expand Up @@ -521,7 +525,9 @@ - (void)callBack:(NSString *)instanceId funcId:(NSString *)funcId params:(id)par
if (manager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[manager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[manager renderFailed:error];
});
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,9 @@ - (void)_downloadAndExecScript:(NSURL *)url {
if (self.componentManager.isValid) {
WXSDKErrCode errorCode = WX_KEY_EXCEPTION_DEGRADE_EAGLE_RENDER_ERROR;
NSError *error = [NSError errorWithDomain:WX_ERROR_DOMAIN code:errorCode userInfo:@{@"message":@"No data render handler found!"}];
[self.componentManager renderFailed:error];
WXPerformBlockOnComponentThread(^{
[self.componentManager renderFailed:error];
});
}
}
return;
Expand Down

0 comments on commit 5f5247d

Please sign in to comment.