You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2018/06/28 07:01:56 UTC
incubator-weex git commit: [WEEX-483][Android] get options from
arguments in callNativeModule
Repository: incubator-weex
Updated Branches:
refs/heads/master 7f6ea01c4 -> c59ac1895
[WEEX-483][Android] get options from arguments in callNativeModule
options has been put in the arguments, So we should get options from arguments
Bug: WEEX-483
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/c59ac189
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/c59ac189
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/c59ac189
Branch: refs/heads/master
Commit: c59ac18953c04fcdbd5b08e60b3e56f5a5f45ffc
Parents: 7f6ea01
Author: Darin <dy...@qq.com>
Authored: Thu Jun 21 12:54:45 2018 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Thu Jun 28 15:01:44 2018 +0800
----------------------------------------------------------------------
.../java/com/taobao/weex/WXSDKInstance.java | 4 ++
.../java/com/taobao/weex/bridge/WXBridge.java | 23 ++++++--
.../com/taobao/weex/bridge/WXBridgeManager.java | 57 +++-----------------
3 files changed, 31 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c59ac189/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index 99680f7..5f6e2a9 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -133,6 +133,10 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan
private @NonNull
FlatGUIContext mFlatGUIContext =new FlatGUIContext();
+ /**
+ * bundle type
+ */
+ public WXBridgeManager.BundType bundleType;
public long mRenderStartNanos;
public int mExecJSTraceId = WXTracing.nextId();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c59ac189/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
index 4059d97..482a681 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
@@ -19,7 +19,6 @@
package com.taobao.weex.bridge;
import android.util.Log;
-
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -214,11 +213,29 @@ public class WXBridge implements IWXBridge {
*/
@Override
public Object callNativeModule(String instanceId, String module, String method, byte[] arguments, byte[] options) {
- try{
- JSONArray argArray = (JSONArray) WXWsonJSONSwitch.parseWsonOrJSON(arguments);
+ try {
+ JSONArray argArray = null;
+ if (arguments != null)
+ argArray = (JSONArray) WXWsonJSONSwitch.parseWsonOrJSON(arguments);
JSONObject optionsObj = null;
if (options != null) {
optionsObj = (JSONObject) WXWsonJSONSwitch.parseWsonOrJSON(options);
+ } else if (argArray != null) {
+ final WXSDKInstance sdkInstance = WXSDKManager.getInstance().getSDKInstance(instanceId);
+ if (sdkInstance != null) {
+ if (WXBridgeManager.BundType.Rax.equals(sdkInstance.bundleType)) {
+ Object weex_options__ = null;
+ for (Object object: argArray) {
+ if (object instanceof JSONObject && ((JSONObject) object).containsKey("__weex_options__")) {
+ weex_options__ = ((JSONObject) object).get("__weex_options__");
+ }
+ }
+
+ if (weex_options__ instanceof JSONObject)
+ optionsObj = (JSONObject) weex_options__;
+ }
+ }
+
}
Object object = WXBridgeManager.getInstance().callNativeModule(instanceId, module, method, argArray, optionsObj);
return WXWsonJSONSwitch.toWsonOrJsonWXJSObject(object);
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c59ac189/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
index 7183112..c6395ca 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -32,7 +32,6 @@ import android.support.v4.util.ArrayMap;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
-
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -41,64 +40,22 @@ import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.WXSDKManager;
import com.taobao.weex.adapter.IWXJSExceptionAdapter;
import com.taobao.weex.adapter.IWXUserTrackAdapter;
-import com.taobao.weex.common.IWXBridge;
-import com.taobao.weex.common.IWXDebugProxy;
-import com.taobao.weex.common.WXConfig;
-import com.taobao.weex.common.WXErrorCode;
-import com.taobao.weex.common.WXException;
-import com.taobao.weex.common.WXJSBridgeMsgType;
-import com.taobao.weex.common.WXJSExceptionInfo;
-import com.taobao.weex.common.WXRefreshData;
-import com.taobao.weex.common.WXRuntimeException;
-import com.taobao.weex.common.WXThread;
+import com.taobao.weex.common.*;
import com.taobao.weex.dom.CSSShorthand;
import com.taobao.weex.layout.ContentBoxMeasurement;
import com.taobao.weex.ui.WXComponentRegistry;
+import com.taobao.weex.ui.action.*;
import com.taobao.weex.ui.component.WXComponent;
-import com.taobao.weex.ui.action.ActionReloadPage;
-import com.taobao.weex.ui.action.BasicGraphicAction;
-import com.taobao.weex.ui.action.GraphicActionAddElement;
-import com.taobao.weex.ui.action.GraphicActionAddEvent;
-import com.taobao.weex.ui.action.GraphicActionAppendTreeCreateFinish;
-import com.taobao.weex.ui.action.GraphicActionCreateBody;
-import com.taobao.weex.ui.action.GraphicActionCreateFinish;
-import com.taobao.weex.ui.action.GraphicActionLayout;
-import com.taobao.weex.ui.action.GraphicActionMoveElement;
-import com.taobao.weex.ui.action.GraphicActionRefreshFinish;
-import com.taobao.weex.ui.action.GraphicActionRemoveElement;
-import com.taobao.weex.ui.action.GraphicActionRemoveEvent;
-import com.taobao.weex.ui.action.GraphicActionUpdateAttr;
-import com.taobao.weex.ui.action.GraphicActionUpdateStyle;
-import com.taobao.weex.ui.action.GraphicPosition;
-import com.taobao.weex.ui.action.GraphicSize;
import com.taobao.weex.ui.module.WXDomModule;
-import com.taobao.weex.utils.WXExceptionUtils;
-import com.taobao.weex.utils.WXFileUtils;
-import com.taobao.weex.utils.WXJsonUtils;
-import com.taobao.weex.utils.WXLogUtils;
-import com.taobao.weex.utils.WXWsonJSONSwitch;
-import com.taobao.weex.utils.WXUtils;
-import com.taobao.weex.utils.WXViewUtils;
+import com.taobao.weex.utils.*;
import com.taobao.weex.utils.batch.BactchExecutor;
import com.taobao.weex.utils.batch.Interceptor;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.InputStreamReader;
+import java.io.*;
import java.lang.reflect.Constructor;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Stack;
+import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
@@ -179,7 +136,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
// weexcore use single process or not
private static boolean isUseSingleProcess = false;
- private enum BundType {
+ public enum BundType {
Vue,
Rax,
Others
@@ -1290,7 +1247,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
} catch (Throwable e) {
e.printStackTrace();
}
-
+ instance.bundleType = type;
if (WXEnvironment.isApkDebugable() && BRIDGE_LOG_SWITCH) {
WXLogUtils.d("createInstance >>>> instanceId:" + instance.getInstanceId()
+ ", options:"