doric plugin
This commit is contained in:
parent
51c8924c2a
commit
ac8d111f7b
@ -20,7 +20,7 @@ public class DoricContext {
|
|||||||
|
|
||||||
public static DoricContext createContext(String script, String alias) {
|
public static DoricContext createContext(String script, String alias) {
|
||||||
String contextId = String.valueOf(sCounter.incrementAndGet());
|
String contextId = String.valueOf(sCounter.incrementAndGet());
|
||||||
DoricDriver.getInstance().createPage(contextId, script, alias);
|
DoricDriver.getInstance().createContext(contextId, script, alias);
|
||||||
return new DoricContext(contextId);
|
return new DoricContext(contextId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,6 +29,6 @@ public class DoricContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void teardown() {
|
public void teardown() {
|
||||||
DoricDriver.getInstance().destoryContext(mContextId);
|
DoricDriver.getInstance().destroyContext(mContextId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,11 +28,11 @@ public class DoricDriver {
|
|||||||
return Inner.sInstance;
|
return Inner.sInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createPage(final String contextId, final String script, final String source) {
|
public void createContext(final String contextId, final String script, final String source) {
|
||||||
doricJSEngine.prepareContext(contextId, script, source);
|
doricJSEngine.prepareContext(contextId, script, source);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void destoryContext(String contextId) {
|
public void destroyContext(String contextId) {
|
||||||
doricJSEngine.destroyContext(contextId);
|
doricJSEngine.destroyContext(contextId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,12 +7,14 @@ import com.github.pengfeizhou.doric.DoricContext;
|
|||||||
* @Author: pengfei.zhou
|
* @Author: pengfei.zhou
|
||||||
* @CreateDate: 2019-07-18
|
* @CreateDate: 2019-07-18
|
||||||
*/
|
*/
|
||||||
public abstract class BaseModule {
|
public abstract class DoricNativePlugin {
|
||||||
private final DoricContext doricContext;
|
private final DoricContext doricContext;
|
||||||
|
|
||||||
protected BaseModule(DoricContext doricContext) {
|
protected DoricNativePlugin(DoricContext doricContext) {
|
||||||
this.doricContext = doricContext;
|
this.doricContext = doricContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract String moduleName();
|
public DoricContext getDoricContext() {
|
||||||
|
return doricContext;
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package com.github.pengfeizhou.doric.bridge;
|
package com.github.pengfeizhou.doric.bridge;
|
||||||
|
|
||||||
import com.github.pengfeizhou.doric.DoricContext;
|
import com.github.pengfeizhou.doric.DoricContext;
|
||||||
|
import com.github.pengfeizhou.doric.extension.DoricComponent;
|
||||||
import com.github.pengfeizhou.doric.extension.DoricMethod;
|
import com.github.pengfeizhou.doric.extension.DoricMethod;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -8,19 +9,15 @@ import com.github.pengfeizhou.doric.extension.DoricMethod;
|
|||||||
* @Author: pengfei.zhou
|
* @Author: pengfei.zhou
|
||||||
* @CreateDate: 2019-07-18
|
* @CreateDate: 2019-07-18
|
||||||
*/
|
*/
|
||||||
public class ModalModule extends BaseModule {
|
@DoricComponent(name = "modal")
|
||||||
|
public class ModalPlugin extends DoricNativePlugin {
|
||||||
|
|
||||||
protected ModalModule(DoricContext doricContext) {
|
protected ModalPlugin(DoricContext doricContext) {
|
||||||
super(doricContext);
|
super(doricContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String moduleName() {
|
|
||||||
return "modal";
|
|
||||||
}
|
|
||||||
|
|
||||||
@DoricMethod(name = "toast")
|
@DoricMethod(name = "toast")
|
||||||
public void toast() {
|
public void toast() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -17,8 +17,6 @@ import com.github.pengfeizhou.jscore.JSDecoder;
|
|||||||
import com.github.pengfeizhou.jscore.JavaFunction;
|
import com.github.pengfeizhou.jscore.JavaFunction;
|
||||||
import com.github.pengfeizhou.jscore.JavaValue;
|
import com.github.pengfeizhou.jscore.JavaValue;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -214,25 +212,7 @@ public class DoricJSEngine implements Handler.Callback, DoricTimerExtension.Time
|
|||||||
public void run() {
|
public void run() {
|
||||||
ArrayList<JavaValue> values = new ArrayList<>();
|
ArrayList<JavaValue> values = new ArrayList<>();
|
||||||
for (Object arg : args) {
|
for (Object arg : args) {
|
||||||
if (arg == null) {
|
values.add(DoricUtils.toJavaValue(arg));
|
||||||
values.add(new JavaValue());
|
|
||||||
} else if (arg instanceof JSONObject) {
|
|
||||||
values.add(new JavaValue((JSONObject) arg));
|
|
||||||
} else if (arg instanceof String) {
|
|
||||||
values.add(new JavaValue((String) arg));
|
|
||||||
} else if (arg instanceof Integer) {
|
|
||||||
values.add(new JavaValue((Integer) arg));
|
|
||||||
} else if (arg instanceof Long) {
|
|
||||||
values.add(new JavaValue((Long) arg));
|
|
||||||
} else if (arg instanceof Double) {
|
|
||||||
values.add(new JavaValue((Double) arg));
|
|
||||||
} else if (arg instanceof Boolean) {
|
|
||||||
values.add(new JavaValue((Boolean) arg));
|
|
||||||
} else if (arg instanceof JavaValue) {
|
|
||||||
values.add((JavaValue) arg);
|
|
||||||
} else {
|
|
||||||
values.add(new JavaValue(String.valueOf(arg)));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
settableFuture.set(mDoricJSE.invokeMethod(DoricConstant.GLOBAL_DORIC, method,
|
settableFuture.set(mDoricJSE.invokeMethod(DoricConstant.GLOBAL_DORIC, method,
|
||||||
values.toArray(new JavaValue[values.size()]), true));
|
values.toArray(new JavaValue[values.size()]), true));
|
||||||
|
@ -14,6 +14,6 @@ import java.lang.annotation.Target;
|
|||||||
@Documented
|
@Documented
|
||||||
@Target(ElementType.TYPE)
|
@Target(ElementType.TYPE)
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
public @interface DoricModule {
|
public @interface DoricComponent {
|
||||||
String name() default "";
|
String name() default "";
|
||||||
}
|
}
|
@ -3,6 +3,9 @@ package com.github.pengfeizhou.doric.utils;
|
|||||||
import android.content.res.AssetManager;
|
import android.content.res.AssetManager;
|
||||||
|
|
||||||
import com.github.pengfeizhou.doric.Doric;
|
import com.github.pengfeizhou.doric.Doric;
|
||||||
|
import com.github.pengfeizhou.jscore.JavaValue;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@ -35,4 +38,26 @@ public class DoricUtils {
|
|||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static JavaValue toJavaValue(Object arg) {
|
||||||
|
if (arg == null) {
|
||||||
|
return new JavaValue();
|
||||||
|
} else if (arg instanceof JSONObject) {
|
||||||
|
return new JavaValue((JSONObject) arg);
|
||||||
|
} else if (arg instanceof String) {
|
||||||
|
return new JavaValue((String) arg);
|
||||||
|
} else if (arg instanceof Integer) {
|
||||||
|
return new JavaValue((Integer) arg);
|
||||||
|
} else if (arg instanceof Long) {
|
||||||
|
return new JavaValue((Long) arg);
|
||||||
|
} else if (arg instanceof Double) {
|
||||||
|
return new JavaValue((Double) arg);
|
||||||
|
} else if (arg instanceof Boolean) {
|
||||||
|
return new JavaValue((Boolean) arg);
|
||||||
|
} else if (arg instanceof JavaValue) {
|
||||||
|
return (JavaValue) arg;
|
||||||
|
} else {
|
||||||
|
return new JavaValue(String.valueOf(arg));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user