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

Commit c59ac18

Browse files
Darin726YorkShen
authored andcommitted
[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
1 parent 7f6ea01 commit c59ac18

File tree

3 files changed

+31
-53
lines changed

3 files changed

+31
-53
lines changed

android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan
133133
private @NonNull
134134
FlatGUIContext mFlatGUIContext =new FlatGUIContext();
135135

136+
/**
137+
* bundle type
138+
*/
139+
public WXBridgeManager.BundType bundleType;
136140
public long mRenderStartNanos;
137141
public int mExecJSTraceId = WXTracing.nextId();
138142

android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package com.taobao.weex.bridge;
2020

2121
import android.util.Log;
22-
2322
import com.alibaba.fastjson.JSON;
2423
import com.alibaba.fastjson.JSONArray;
2524
import com.alibaba.fastjson.JSONObject;
@@ -214,11 +213,29 @@ public void reportJSException(String instanceId, String func, String exception)
214213
*/
215214
@Override
216215
public Object callNativeModule(String instanceId, String module, String method, byte[] arguments, byte[] options) {
217-
try{
218-
JSONArray argArray = (JSONArray) WXWsonJSONSwitch.parseWsonOrJSON(arguments);
216+
try {
217+
JSONArray argArray = null;
218+
if (arguments != null)
219+
argArray = (JSONArray) WXWsonJSONSwitch.parseWsonOrJSON(arguments);
219220
JSONObject optionsObj = null;
220221
if (options != null) {
221222
optionsObj = (JSONObject) WXWsonJSONSwitch.parseWsonOrJSON(options);
223+
} else if (argArray != null) {
224+
final WXSDKInstance sdkInstance = WXSDKManager.getInstance().getSDKInstance(instanceId);
225+
if (sdkInstance != null) {
226+
if (WXBridgeManager.BundType.Rax.equals(sdkInstance.bundleType)) {
227+
Object weex_options__ = null;
228+
for (Object object: argArray) {
229+
if (object instanceof JSONObject && ((JSONObject) object).containsKey("__weex_options__")) {
230+
weex_options__ = ((JSONObject) object).get("__weex_options__");
231+
}
232+
}
233+
234+
if (weex_options__ instanceof JSONObject)
235+
optionsObj = (JSONObject) weex_options__;
236+
}
237+
}
238+
222239
}
223240
Object object = WXBridgeManager.getInstance().callNativeModule(instanceId, module, method, argArray, optionsObj);
224241
return WXWsonJSONSwitch.toWsonOrJsonWXJSObject(object);

android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java

Lines changed: 7 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import android.text.TextUtils;
3333
import android.view.View;
3434
import android.view.ViewGroup;
35-
3635
import com.alibaba.fastjson.JSON;
3736
import com.alibaba.fastjson.JSONArray;
3837
import com.alibaba.fastjson.JSONObject;
@@ -41,64 +40,22 @@
4140
import com.taobao.weex.WXSDKManager;
4241
import com.taobao.weex.adapter.IWXJSExceptionAdapter;
4342
import com.taobao.weex.adapter.IWXUserTrackAdapter;
44-
import com.taobao.weex.common.IWXBridge;
45-
import com.taobao.weex.common.IWXDebugProxy;
46-
import com.taobao.weex.common.WXConfig;
47-
import com.taobao.weex.common.WXErrorCode;
48-
import com.taobao.weex.common.WXException;
49-
import com.taobao.weex.common.WXJSBridgeMsgType;
50-
import com.taobao.weex.common.WXJSExceptionInfo;
51-
import com.taobao.weex.common.WXRefreshData;
52-
import com.taobao.weex.common.WXRuntimeException;
53-
import com.taobao.weex.common.WXThread;
43+
import com.taobao.weex.common.*;
5444
import com.taobao.weex.dom.CSSShorthand;
5545
import com.taobao.weex.layout.ContentBoxMeasurement;
5646
import com.taobao.weex.ui.WXComponentRegistry;
47+
import com.taobao.weex.ui.action.*;
5748
import com.taobao.weex.ui.component.WXComponent;
58-
import com.taobao.weex.ui.action.ActionReloadPage;
59-
import com.taobao.weex.ui.action.BasicGraphicAction;
60-
import com.taobao.weex.ui.action.GraphicActionAddElement;
61-
import com.taobao.weex.ui.action.GraphicActionAddEvent;
62-
import com.taobao.weex.ui.action.GraphicActionAppendTreeCreateFinish;
63-
import com.taobao.weex.ui.action.GraphicActionCreateBody;
64-
import com.taobao.weex.ui.action.GraphicActionCreateFinish;
65-
import com.taobao.weex.ui.action.GraphicActionLayout;
66-
import com.taobao.weex.ui.action.GraphicActionMoveElement;
67-
import com.taobao.weex.ui.action.GraphicActionRefreshFinish;
68-
import com.taobao.weex.ui.action.GraphicActionRemoveElement;
69-
import com.taobao.weex.ui.action.GraphicActionRemoveEvent;
70-
import com.taobao.weex.ui.action.GraphicActionUpdateAttr;
71-
import com.taobao.weex.ui.action.GraphicActionUpdateStyle;
72-
import com.taobao.weex.ui.action.GraphicPosition;
73-
import com.taobao.weex.ui.action.GraphicSize;
7449
import com.taobao.weex.ui.module.WXDomModule;
75-
import com.taobao.weex.utils.WXExceptionUtils;
76-
import com.taobao.weex.utils.WXFileUtils;
77-
import com.taobao.weex.utils.WXJsonUtils;
78-
import com.taobao.weex.utils.WXLogUtils;
79-
import com.taobao.weex.utils.WXWsonJSONSwitch;
80-
import com.taobao.weex.utils.WXUtils;
81-
import com.taobao.weex.utils.WXViewUtils;
50+
import com.taobao.weex.utils.*;
8251
import com.taobao.weex.utils.batch.BactchExecutor;
8352
import com.taobao.weex.utils.batch.Interceptor;
8453

85-
import java.io.BufferedReader;
86-
import java.io.File;
87-
import java.io.FileInputStream;
88-
import java.io.FileReader;
89-
import java.io.InputStreamReader;
54+
import java.io.*;
9055
import java.lang.reflect.Constructor;
9156
import java.text.DateFormat;
9257
import java.text.SimpleDateFormat;
93-
import java.util.ArrayList;
94-
import java.util.Date;
95-
import java.util.HashMap;
96-
import java.util.HashSet;
97-
import java.util.Iterator;
98-
import java.util.List;
99-
import java.util.Map;
100-
import java.util.Set;
101-
import java.util.Stack;
58+
import java.util.*;
10259
import java.util.concurrent.CountDownLatch;
10360
import java.util.concurrent.TimeUnit;
10461
import java.util.regex.Pattern;
@@ -179,7 +136,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
179136
// weexcore use single process or not
180137
private static boolean isUseSingleProcess = false;
181138

182-
private enum BundType {
139+
public enum BundType {
183140
Vue,
184141
Rax,
185142
Others
@@ -1290,7 +1247,7 @@ private void invokeCreateInstance(@NonNull WXSDKInstance instance, String templa
12901247
} catch (Throwable e) {
12911248
e.printStackTrace();
12921249
}
1293-
1250+
instance.bundleType = type;
12941251
if (WXEnvironment.isApkDebugable() && BRIDGE_LOG_SWITCH) {
12951252
WXLogUtils.d("createInstance >>>> instanceId:" + instance.getInstanceId()
12961253
+ ", options:"

0 commit comments

Comments
 (0)