diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXCoreBridge.mm b/ios/sdk/WeexSDK/Sources/Bridge/WXCoreBridge.mm index 9c95482872..5b9d9e3c31 100644 --- a/ios/sdk/WeexSDK/Sources/Bridge/WXCoreBridge.mm +++ b/ios/sdk/WeexSDK/Sources/Bridge/WXCoreBridge.mm @@ -757,9 +757,6 @@ static void MergeBorderWidthValues(NSMutableDictionary* dict, int IOSSide::CreateFinish(const char* pageId) { RenderPageBase *page = RenderManager::GetInstance()->GetPage(pageId); - if (page == nullptr) { - return -1; - } long long startTime = getCurrentTime(); @@ -776,16 +773,15 @@ static void MergeBorderWidthValues(NSMutableDictionary* dict, [manager startComponentTasks]; [manager createFinish]; - page->CallBridgeTime(getCurrentTime() - startTime); + if (page) { + page->CallBridgeTime(getCurrentTime() - startTime); + } return 0; } int IOSSide::RenderSuccess(const char* pageId) { RenderPageBase *page = RenderManager::GetInstance()->GetPage(pageId); - if (page == nullptr) { - return -1; - } long long startTime = getCurrentTime(); @@ -802,7 +798,9 @@ static void MergeBorderWidthValues(NSMutableDictionary* dict, [manager startComponentTasks]; [manager renderFinish]; - page->CallBridgeTime(getCurrentTime() - startTime); + if (page) { + page->CallBridgeTime(getCurrentTime() - startTime); + } return 0; } @@ -1261,10 +1259,12 @@ - (void)callRemoveEvent:(NSString*)pageId ref:(NSString*)ref event:(NSString*)ev - (void)callCreateFinish:(NSString*)pageId { - RenderPageCustom* page = [self getPage:pageId]; - if (page && page->IsValid()) { - page->CreateFinish(); - } + WXPerformBlockOnComponentThread(^{ + RenderPageCustom* page = [self getPage:pageId]; + if (page && page->IsValid()) { + page->CreateFinish(); + } + }); } - (void)callRefreshFinish:(NSString*)pageId diff --git a/ios/sdk/WeexSDK/Sources/Module/WXDomModule.m b/ios/sdk/WeexSDK/Sources/Module/WXDomModule.m index dd4c51e2c8..4b3607bb47 100644 --- a/ios/sdk/WeexSDK/Sources/Module/WXDomModule.m +++ b/ios/sdk/WeexSDK/Sources/Module/WXDomModule.m @@ -155,9 +155,14 @@ - (void)removeEvent:(NSString *)ref event:(NSString *)event - (void)createFinish { NSString* instanceId = self.weexInstance.instanceId; - WXPerformBlockOnComponentThread(^{ - [WXCoreBridge callCreateFinish:instanceId]; - }); + if ([WXCustomPageBridge isCustomPage:instanceId]) { + [[WXCustomPageBridge sharedInstance] callCreateFinish:instanceId]; + } + else { + WXPerformBlockOnComponentThread(^{ + [WXCoreBridge callCreateFinish:instanceId]; + }); + } } - (void)updateFinish