This is an automated email from the ASF dual-hosted git repository.

jianhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git


The following commit(s) were added to refs/heads/master by this push:
     new 058f8ea  [Android] Pass bundleType to eagle (#2412)
058f8ea is described below

commit 058f8ea51b004509f61617359e98f5e0682c06c5
Author: YorkShen <shenyua...@gmail.com>
AuthorDate: Wed May 8 21:13:22 2019 +0800

    [Android] Pass bundleType to eagle (#2412)
    
    * Add bundleType for eagle
    
    * Change parameter name.
---
 .../java/com/taobao/weex/bridge/RequestHandler.java     | 17 +++++++++--------
 .../android/jniprebuild/jniheader/RequestHandler_jni.h  |  4 +++-
 weex_core/Source/core/bridge/eagle_bridge.cpp           |  2 +-
 weex_core/Source/core/bridge/eagle_bridge.h             |  6 +++---
 .../core/bridge/platform/core_side_in_platform.cpp      |  6 +++---
 .../core/network/android/default_request_handler.cc     | 10 +++++++---
 .../core/network/android/default_request_handler.h      |  2 +-
 weex_core/Source/core/network/request_handler.h         |  2 +-
 8 files changed, 28 insertions(+), 21 deletions(-)

diff --git 
a/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java 
b/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java
index a5bf160..8f1df48 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/RequestHandler.java
@@ -18,9 +18,11 @@
  */
 package com.taobao.weex.bridge;
 
+import static com.taobao.weex.http.WXHttpUtil.KEY_USER_AGENT;
+
 import android.net.Uri;
+import android.support.annotation.Keep;
 import android.text.TextUtils;
-
 import com.taobao.weex.WXEnvironment;
 import com.taobao.weex.WXHttpListener;
 import com.taobao.weex.WXSDKInstance;
@@ -28,19 +30,16 @@ import com.taobao.weex.WXSDKManager;
 import com.taobao.weex.adapter.IWXHttpAdapter;
 import com.taobao.weex.adapter.URIAdapter;
 import com.taobao.weex.base.CalledByNative;
+import com.taobao.weex.bridge.WXBridgeManager.BundType;
 import com.taobao.weex.common.WXRequest;
 import com.taobao.weex.common.WXResponse;
 import com.taobao.weex.http.WXHttpUtil;
-
 import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static com.taobao.weex.http.WXHttpUtil.KEY_USER_AGENT;
 
 public class RequestHandler {
 
-  native void nativeInvokeOnSuccess(long callback, String result);
+  @Keep
+  native void nativeInvokeOnSuccess(long callback, String script, String 
bundleType);
   native void nativeInvokeOnFailed(long callback);
 
   @CalledByNative
@@ -90,7 +89,9 @@ public class RequestHandler {
     @Override
     public void onSuccess(WXResponse response) {
         String script = new String(response.originalData);
-        nativeInvokeOnSuccess(sNativeCallback, script);
+        BundType bundleType = WXBridgeManager.getInstance().getBundleType("", 
script);
+        String bundleTypeStr = bundleType == null ? "Others" : 
bundleType.toString();
+        nativeInvokeOnSuccess(sNativeCallback, script, bundleTypeStr);
     }
 
     @Override
diff --git 
a/weex_core/Source/base/android/jniprebuild/jniheader/RequestHandler_jni.h 
b/weex_core/Source/base/android/jniprebuild/jniheader/RequestHandler_jni.h
index ee9e5c2..65f9d50 100644
--- a/weex_core/Source/base/android/jniprebuild/jniheader/RequestHandler_jni.h
+++ b/weex_core/Source/base/android/jniprebuild/jniheader/RequestHandler_jni.h
@@ -43,7 +43,8 @@ jclass g_RequestHandler_clazz = NULL;
 
 static void InvokeOnSuccess(JNIEnv* env, jobject jcaller,
     jlong callback,
-    jstring result);
+    jstring script,
+    jstring bundleType);
 
 static void InvokeOnFailed(JNIEnv* env, jobject jcaller,
     jlong callback);
@@ -109,6 +110,7 @@ static const JNINativeMethod kMethodsRequestHandler[] = {
 "("
 "J"
 "Ljava/lang/String;"
+"Ljava/lang/String;"
 ")"
 "V", reinterpret_cast<void*>(InvokeOnSuccess) },
     { "nativeInvokeOnFailed",
diff --git a/weex_core/Source/core/bridge/eagle_bridge.cpp 
b/weex_core/Source/core/bridge/eagle_bridge.cpp
index 4422bc0..101f33f 100644
--- a/weex_core/Source/core/bridge/eagle_bridge.cpp
+++ b/weex_core/Source/core/bridge/eagle_bridge.cpp
@@ -133,7 +133,7 @@ namespace WeexCore {
         
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<void(const std::string&)> callback) {
+    void EagleBridge::WeexCoreHandler::Send(const char* instance_id, const 
char* url, std::function<void(const std::string&, const std::string&)> 
callback) {
         weex::core::network::HttpModule http_module;
         http_module.Send(instance_id, url, callback);
     }
diff --git a/weex_core/Source/core/bridge/eagle_bridge.h 
b/weex_core/Source/core/bridge/eagle_bridge.h
index f70eefa..5ff489e 100644
--- a/weex_core/Source/core/bridge/eagle_bridge.h
+++ b/weex_core/Source/core/bridge/eagle_bridge.h
@@ -77,7 +77,7 @@ namespace WeexCore {
             bool CreateFinish(const std::string &page_id);
             bool ClosePage(const std::string &page_id);
             void ReportException(const char* page_id, const char* func, const 
char* exception_string);
-            void Send(const char* instance_id, const char* url, 
std::function<void(const std::string&)> callback);
+            void Send(const char* instance_id, const char* url, 
std::function<void(const std::string&, const std::string&)> callback);
             int RefreshFinish(const char* page_id, const char* task, const 
char* callback);
             std::unique_ptr<ValueWithType> CallNativeModule (const char* 
page_id, const char* module, const char* method,const char* arguments, int 
arguments_length, const char* options, int options_length);
             void CallNativeComponent (const char* page_id, const char* module, 
const char* method,const char* arguments, int arguments_length, const char* 
options, int options_length);
@@ -115,9 +115,9 @@ namespace WeexCore {
         class DataRenderHandler {
         public:
             virtual int DestroyInstance(const char *instanceId);
-            virtual void CreatePage(const std::string &input, const 
std::string &page_id, const std::string &options, const std::string &init_data, 
std::function<void(const char*)> exec_js) {}
+            virtual void CreatePage(const std::string &input, const 
std::string &page_id, const std::string &options, const std::string &init_data, 
std::function<void(const char*, const char*)> exec_js) {}
             
-            virtual void CreatePage(const char *contents, size_t length, const 
std::string& page_id, const std::string& options, const std::string& env, const 
std::string& init_data, std::function<void(const char*)> exec_js) {}
+            virtual void CreatePage(const char *contents, size_t length, const 
std::string& page_id, const std::string& options, const std::string& env, const 
std::string& init_data, std::function<void(const char*,const char*)> exec_js) {}
             virtual bool RefreshPage(const std::string &page_id, const 
std::string &init_data) {return false;}
             virtual void UpdateComponentData(const std::string& page_id, const 
char* cid, const std::string& json_data) {}
             virtual void FireEvent(const std::string &page_id, const 
std::string &ref, const std::string &event,const std::string &args,const 
std::string &dom_changes) {}
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 ad27397..e980845 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
@@ -423,17 +423,17 @@ int CoreSideInPlatform::CreateInstance(const char 
*instanceId, const char *func,
                                        const char *render_strategy) {
   // First check about DATA_RENDER mode
   if (render_strategy != nullptr) {
-    std::function<void(const char *)> exec_js =
+    std::function<void(const char *, const char *)> exec_js =
         [instanceId = std::string(instanceId), func = std::string(func),
          opts = std::string(opts), initData = std::string(initData),
-         extendsApi = std::string(extendsApi)](const char *result) {
+         extendsApi = std::string(extendsApi)](const char *result, const char 
*bundleType) {
           // FIXME Now only support vue, this should be fixed
           std::string error;
           auto opts_json = json11::Json::parse(opts, error);
           std::map<std::string, json11::Json> &opts_map =
               const_cast<std::map<std::string, json11::Json> &>(
                   opts_json.object_items());
-          opts_map["bundleType"] = "Vue";
+          opts_map["bundleType"] = bundleType;
           std::vector<INIT_FRAMEWORK_PARAMS*> params;
           WeexCoreManager::Instance()
               ->script_bridge()
diff --git a/weex_core/Source/core/network/android/default_request_handler.cc 
b/weex_core/Source/core/network/android/default_request_handler.cc
index 7f583cb..be45cc4 100644
--- a/weex_core/Source/core/network/android/default_request_handler.cc
+++ b/weex_core/Source/core/network/android/default_request_handler.cc
@@ -26,11 +26,15 @@
 using namespace weex::core::network;
 
 static void InvokeOnSuccess(JNIEnv* env, jobject jcaller, jlong callback,
-                            jstring result) {
+                            jstring script,
+                            jstring bundleType) {
   CallbackWrapper* callback_wrapper =
       reinterpret_cast<CallbackWrapper*>(callback);
-  WeexCore::ScopedJStringUTF8 jni_result(env, result);
-  callback_wrapper->Invoke(jni_result.getChars() ? jni_result.getChars() : "");
+  WeexCore::ScopedJStringUTF8 jni_result(env, script);
+  WeexCore::ScopedJStringUTF8 bundleTypeStr(env, bundleType);
+  callback_wrapper->Invoke(
+      jni_result.getChars() ? jni_result.getChars() : "",
+      bundleTypeStr.getChars());
   delete callback_wrapper;
 }
 
diff --git a/weex_core/Source/core/network/android/default_request_handler.h 
b/weex_core/Source/core/network/android/default_request_handler.h
index 5ea80ba..cd4eb00 100644
--- a/weex_core/Source/core/network/android/default_request_handler.h
+++ b/weex_core/Source/core/network/android/default_request_handler.h
@@ -43,7 +43,7 @@ class CallbackWrapper {
  public:
   CallbackWrapper(Callback callback) : callback_(callback) {}
   ~CallbackWrapper() {}
-  void Invoke(const std::string& result) { callback_(result); }
+  void Invoke(const std::string& result, const std::string& bundleType) { 
callback_(result, bundleType); }
 
  private:
   Callback callback_;
diff --git a/weex_core/Source/core/network/request_handler.h 
b/weex_core/Source/core/network/request_handler.h
index 66a4a87..4e68243 100644
--- a/weex_core/Source/core/network/request_handler.h
+++ b/weex_core/Source/core/network/request_handler.h
@@ -25,7 +25,7 @@
 namespace weex {
 namespace core {
 namespace network {
-typedef std::function<void(const std::string&)> Callback;
+typedef std::function<void(const std::string&, const std::string&)> Callback;
 
 class RequestHandler {
  public:

Reply via email to