Skip to content

Commit

Permalink
[WEEX-172][android] improve jsservice useage,support mutil type params
Browse files Browse the repository at this point in the history
  • Loading branch information
lybeen committed Dec 15, 2017
1 parent 702520b commit 269d4ba
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 10 deletions.
2 changes: 1 addition & 1 deletion android/sdk/src/main/java/com/taobao/weex/WXSDKEngine.java
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ public static boolean registerModule(String moduleName, Class<? extends WXModule
return registerModule(moduleName, moduleClass,false);
}

public static boolean registerService(String name, String serviceScript, Map<String, String> options) {
public static boolean registerService(String name, String serviceScript, Map<String, Object> options) {
return WXServiceManager.registerService(name, serviceScript, options);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,30 +18,31 @@
*/
package com.taobao.weex.bridge;

import android.support.annotation.NonNull;
import android.text.TextUtils;

import com.taobao.weex.WXEnvironment;
import com.taobao.weex.common.WXJSService;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class WXServiceManager {

private static Map<String, WXJSService> sInstanceJSServiceMap = new HashMap<>();

public static boolean registerService(String name, String serviceScript, Map<String, String> options) {
public static boolean registerService(String name, String serviceScript, Map<String, Object> options) {
if (TextUtils.isEmpty(name) || TextUtils.isEmpty(serviceScript)) return false;

String param1 = "register: global.registerService, unregister: global.unregisterService";
String param2 = "serviceName: \"" + name + "\"";
for (String key: options.keySet()) {
// TODO - why always string?
String value = options.get(key);
param2 += ", " + key + ": \"" + value + "\"";
Object value = options.get(key);
if (value instanceof String) {
param2 += ", \'" + key + "\': \'" + value + "\'";
} else {
param2 += ", \'" + key + "\': " + value;
}
}
String serviceJs = String.format(";(function(service, options){ ;%s; })({ %s }, { %s });", serviceScript, param1, param2);

Expand Down Expand Up @@ -76,4 +77,11 @@ public static void execAllCacheJsService() {
registerService(service.getName(), service.getScript(), service.getOptions());
}
}

public static WXJSService getService(String serviceName) {
if (sInstanceJSServiceMap != null) {
return sInstanceJSServiceMap.get(serviceName);
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
public class WXJSService implements IWXObject {
private String name;
private String script;
private Map<String, String> options = new HashMap<>();
private Map<String, Object> options = new HashMap<>();

public String getName() { return name; }
public void setName(String name) {
Expand All @@ -36,8 +36,8 @@ public void setScript(String script) {
this.script = script;
}

public Map<String, String> getOptions() { return options; }
public void setOptions(Map<String, String> options) {
public Map<String, Object> getOptions() { return options; }
public void setOptions(Map<String, Object> options) {
this.options = options;
}
}

0 comments on commit 269d4ba

Please sign in to comment.