From f6171bf35b8a207dca5b3d46aa2864412937cedd Mon Sep 17 00:00:00 2001 From: YorkShen Date: Tue, 7 May 2019 15:03:56 +0800 Subject: [PATCH] [Android] Report an exception if there is an error. (#2393) * Report an exception if there is an error. * Change "__updateComponentData" to "UpdateComponentData" --- weex_core/Source/core/bridge/eagle_bridge.cpp | 2 +- .../core/bridge/platform/core_side_in_platform.cpp | 8 ++++++-- .../Source/core/bridge/script/core_side_in_script.cpp | 10 +++++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/weex_core/Source/core/bridge/eagle_bridge.cpp b/weex_core/Source/core/bridge/eagle_bridge.cpp index 7f2640dc9e..4422bc0b43 100644 --- a/weex_core/Source/core/bridge/eagle_bridge.cpp +++ b/weex_core/Source/core/bridge/eagle_bridge.cpp @@ -130,7 +130,7 @@ namespace WeexCore { } void EagleBridge::WeexCoreHandler::ReportException(const char* page_id, const char* func, const char* exception_string) { - WeexCore::WeexCoreManager::Instance()->getPlatformBridge()->platform_side()->ReportException(page_id, nullptr, exception_string); + WeexCore::WeexCoreManager::Instance()->getPlatformBridge()->platform_side()->ReportException(page_id, func, exception_string); } void EagleBridge::WeexCoreHandler::Send(const char* instance_id, const char* url, std::function callback) { diff --git a/weex_core/Source/core/bridge/platform/core_side_in_platform.cpp b/weex_core/Source/core/bridge/platform/core_side_in_platform.cpp index 674409cd88..ad27397791 100644 --- a/weex_core/Source/core/bridge/platform/core_side_in_platform.cpp +++ b/weex_core/Source/core/bridge/platform/core_side_in_platform.cpp @@ -448,7 +448,9 @@ int CoreSideInPlatform::CreateInstance(const char *instanceId, const char *func, handler->CreatePage(script, instanceId, render_strategy, initData, exec_js); } else{ - LOGE("DATA_RENDER mode should not be used if there is no data_render_handler"); + WeexCore::WeexCoreManager::Instance()->getPlatformBridge()->platform_side()->ReportException( + instanceId, "CreatePageWithContent", + "There is no data_render_handler when createInstance with DATA_RENDER mode"); } return true; @@ -487,7 +489,9 @@ int CoreSideInPlatform::CreateInstance(const char *instanceId, const char *func, handler->CreatePage(script, static_cast(script_length), instanceId, option, env_str, initData, exec_js); } else{ - LOGE("DATA_RENDER_BINARY mode should not be used if there is no data_render_handler"); + WeexCore::WeexCoreManager::Instance()->getPlatformBridge()->platform_side()->ReportException( + instanceId, "CreatePageWithContent", + "There is no data_render_handler when createInstance with DATA_RENDER_BINARY mode"); } return true; } diff --git a/weex_core/Source/core/bridge/script/core_side_in_script.cpp b/weex_core/Source/core/bridge/script/core_side_in_script.cpp index 4bd4694b7e..4bb6e44eae 100644 --- a/weex_core/Source/core/bridge/script/core_side_in_script.cpp +++ b/weex_core/Source/core/bridge/script/core_side_in_script.cpp @@ -469,7 +469,15 @@ void CoreSideInScript::OnReceivedResult(long callback_id, void CoreSideInScript::UpdateComponentData(const char* page_id, const char* cid, const char* json_data) { - EagleBridge::GetInstance()->data_render_handler()->UpdateComponentData(page_id, cid, json_data); + auto handler = EagleBridge::GetInstance()->data_render_handler(); + if(handler){ + handler->UpdateComponentData(page_id, cid, json_data); + } + else{ + WeexCore::WeexCoreManager::Instance()->getPlatformBridge()->platform_side()->ReportException( + page_id, "UpdateComponentData", + "There is no data_render_handler when UpdateComponentData invoked"); + } } } // namespace WeexCore